Как выразить межпроектные зависимости в Eclipse PDE

Я ищу лучшую практику обработки межпроектных зависимостей между смешанными типами проектов, где некоторые проекты являются проектами plug-in / OSGI модуля Eclipse (приложение RCP), а другие являются просто старыми Java-проектами (модулями веб-сервисов). Немногие из подключаемых модулей eclipse имеют зависимости от проектов Java.

Моя проблема в том, что, по крайней мере, насколько я мог судить, в Eclipse PDE нет способа четко выразить такую зависимость. Я могу иметь проекты плагинов, зависящие от других проектов плагинов (черезImport-Package или жеRequire-Bundle явные заголовки), но не простых Java-проектов.

Кажется, я могу сделать так, чтобы проект объявлял зависимость от jar от другого проекта в рабочей области, но эти файлы jar не воспринимаются ни экспортом, ни конфигурацией запуска (хотя редактирование кода java видит библиотеки просто замечательно).

«Java-проекты» используются для создания сервисов, которые должны быть развернуты в контейнере J2EE (на данный момент JBoss 4.2.2), и в некоторых случаях создают несколько jar-файлов - один для развертывания на ухо JBoss, а другой для использования клиентским кодом ( Приложение RCP).

Способ, которым мы «решили» эту проблему на данный момент, состоит в том, что у нас есть еще 2 конфигурации запуска внешних инструментов - одна для сборки всех jar-файлов, а другая для копирования этих jar-файлов в проекты плагинов. Это работает (в некотором роде), но цели "всей сборки" и "jar-копии" подвергаются довольно большому этапу сборки, минуя функцию инкрементальной сборки всего затмения, и путем копирования jars вместо простой ссылки на проекты, я отделяю информацию о зависимостях и запрос довольно масштабного обновления рабочего пространства, которое пожирает время разработки, как будто это была конфетка.

Я хотел бы иметь гораздо более «естественную» настройку рабочего пространства, которая будет управлять зависимостями между проектами и запрашивать инкрементные перестройки только по мере необходимости, иметь возможность использовать клиентский код из сервисных библиотек в плагинах приложений RCP и иметь возможность запустить приложение RCP со всеми необходимыми классами там, где они нужны.

Так что я могу взять свой пирог и съесть его;)

НОТА

Чтобы быть ясным, в данный момент речь идет не столько об управлении зависимостями и модулями, сколько о конфигурации Eclipse PDE.

Мне хорошо известны такие продукты, как [Maven], [Ivy] и [Buckminster], и они решают совершенно другую проблему (после того, как я решил проблему с конфигурацией рабочего пространства, эти продукты могут пригодиться для материализации рабочего пространства и построения продукт)

Ответы на вопрос(8)

Ваш ответ на вопрос