eclipse не может экспортировать пакеты из необходимого проекта - PullRequest
0 голосов
/ 09 февраля 2012

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

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

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

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

Я думал, что смогубыть в состоянии отредактировать свойства проекта для B так, чтобы A был "Обязательным проектом" (Proeprties -> Java Build Path -> Projects), и так как это по существу включает в себя источник (по крайней мере, я предполагаю, что это то, чтоЗапись в .classpath выполняется). Я подумал, что мог бы затем экспортировать пакет P из проекта B. Однако, когда я делаю это, затмение просто жалуется, что в подключаемом проекте B нет пакета P.

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

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

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

Приветствия, Джейсон.

Ответы [ 2 ]

0 голосов
/ 13 февраля 2012

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

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

0 голосов
/ 09 февраля 2012

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

...