Я ищу наилучшую практику обработки зависимостей между проектами между смешанными типами проектов, где некоторые из проектов - проекты с подключаемым модулем eclipse/OSGI (приложение RCP), а другие - просто старые Java-проекты (модули веб-сервисов). Немногие из плагинов eclipse имеют зависимости от проектов Java.
Моя проблема в том, что, по крайней мере, насколько я понял, нет никакого способа четко выразить такую зависимость в среде Eclipse PDE. Я могу иметь проекты подключаемых модулей, зависящие от других подключаемых проектов (через Import-Package
или Require-Bundle
манифеста заголовков), но не от простых java-проектов.
Кажется, у меня есть проект, который может объявить зависимость от jar из другого проекта в рабочей области, но эти файлы jar не получают ни экспорт, ни запуск конфигурации (хотя редактирование кода Java видит, что библиотеки просто отлично).
"Проекты Java" используются для создания служб, которые будут развернуты в контейнере J2EE (JBoss 4.2.2 на данный момент), и в некоторых случаях выпускают несколько баннеров - один для развертывания на ухе JBoss и другой для использования клиентом кода (приложение RCP).
То, как мы "решили" эту проблему на данный момент, состоит в том, что у нас есть еще две конфигурации пусковых установок внешних устройств - одна для сборки всей банки и другая для копирования этих банок в проекты подключаемого модуля. Это работает (вроде), но цели "целая сборка" и "копировать банки" имеют довольно большой шаг сборки, минуя всю инкрементную функцию построения затмения и копируя банки вместо того, чтобы просто ссылаться на проекты. Я развязываю информацию о зависимостях и запрашивает довольно массовое обновление рабочей области, которое ест время разработки, как будто это была конфета.
То, что я хотел бы иметь, - это гораздо более "естественная" настройка рабочего пространства, которая будет управлять зависимостями между проектами и запрашивать инкрементные перестройки только по мере необходимости, иметь возможность использовать код клиента из библиотек служб в плагинах приложений RCP и иметь возможность запускать приложение RCP со всеми необходимыми классами, где они необходимы.
Так что я могу взять пирог и съесть его;)
Примечание
Чтобы быть ясным, речь идет не только об управлении зависимостями и управлении модулем на данный момент, как о конфигурации Eclipse PDE.
Я хорошо знаю такие продукты, как [Maven], [Ivy] и [Buckminster], и они решают совершенно другую проблему (как только я решил проблему с настройкой рабочей области, эти продукты могут быть полезны для материализации рабочего пространства и построение продукта)