eclipse не может экспортировать пакеты из требуемого проекта

У меня есть следующие настройки проектов в Eclipse Indigo SR1:

  • Обычный проект Java (A), включающий пакет (P)
  • Проект подключаемого модуля (B), в котором есть копия файла JAR, экспортируемого из A, а затем экспортируется пакет P.
  • Несколько других проектов подключаемых модулей (C...Z), которые импортируют пакет P

Что я хочу сделать, так это избавиться от ручного экспорта и копирования JAR из проекта A в проект B. Я не хочу преобразовывать этот проект в проект подключаемого модуля, потому что тот же проект используется в устаревшем приложении, которое делает не использовать OSGi.

Это особенно раздражает, поскольку, когда я обновляю JAR-затмение, он не получает измененные файлы классов, и все мои точки останова там сходят с ума (отдельная проблема).

Я думал, что смогу отредактировать свойства проекта для B, чтобы A был «Обязательным проектом» (Свойства -> Путь сборки Java -> Проекты), и поскольку это по существу включает источник (по крайней мере, я думаю, что это то, что запись в .classpath делает) Я подумал, что могу экспортировать пакет P из проекта B. Однако, когда я это делаю, eclipse просто жалуется, что проект подключаемого модуля B не содержит пакет P.

Я подумал, что могу просто связать исходные папки из A в B, но это не совсем то, что я хочу делать.

Если ссылочный проект A находится в пути к классам, то, безусловно, проект подключаемого модуля A должен иметь возможность экспортировать эти пакеты, или я ошибаюсь в этом предположении?

Каков наилучший способ добиться того, чего я хочу?

Здоровья, Джейсон.


person steinybot    schedule 09.02.2012    source источник


Ответы (2)


вам следует рассмотреть возможность использования maven в качестве инструмента сборки. инструмент был создан, чтобы автоматизировать именно то, что вы описали. Maven

person Anantha Sharma    schedule 09.02.2012
comment
Спасибо, но, к сожалению, мы используем Ant уже много лет, и я не принимаю решения о переходе на Maven. Я только начал использовать Maven для своих собственных проектов, так что это полезно знать. - person steinybot; 10.02.2012

В этом случае вы должны преобразовать свой java-проект в проект плагина (пакет OSGi). Вы по-прежнему можете использовать его как обычную банку и как плагин. Когда вы конвертируете его, убедитесь, что он создает файл MANIFEST.MF. Просто не создавайте активатор, так как это потребует зависимости от org.eclipse.osgi, и не добавляйте никаких других зависимостей require-bundle.

Пакет OSGi на самом деле представляет собой просто банку (и это нормально) с OSGi MANIFEST.MF, который предоставляет информацию о том, какие пакеты экспортируются, какие зависимости и т. д.

person Paul Webster    schedule 13.02.2012