Мы переносим нашу систему сборки с Ant на Maven, и в настоящее время я работаю над созданием подключаемых модулей Eclipse. Проведя небольшое исследование, я решил использовать для сборки плагин Tycho Maven. Это было непросто, но я решил большинство проблем, кроме этой.
Я получил ошибки при попытке построить зависимые плагины. Предположим, у меня есть плагин A и плагин B, который зависит от A (использует классы из A). Оба этих плагина манифестируются первыми (и имеют <packaging>eclipse-plugin</packaging>
).
Когда я попытался собрать «B», я получил следующую ошибку сборки:
[ERROR] Access restriction: The type Constants is not accessible due to restriction on class pathentry C:/maven/repository/...
Я проверял все несколько раз, но только позже понял, что мне следует взглянуть на MANIFEST.MF файла A.jar в моем репозитории, - и это было кейс. Export-Package
по какой-то причине был удален из MANIFEST-MF плагина A. Я вручную добавил отсутствующие экспорты в MANIFEST.MF в локальном репозитории Maven (просто для того, чтобы убедиться, что это реальная проблема!), и сборка плагина B прошла успешно!
Итак, вопрос: как настроить Tycho не удалять Export-Package во встроенных плагинах (или настроить, какие пакеты следует экспортировать)?