Внешняя сборка не может найти импорт - PullRequest
0 голосов
/ 13 января 2012

Я работаю над проектом Eclipse RCP на Eclipse 3.6, который разбит на 3 проекта Java.

enter image description here

Начиная снизу, gov.bop.rabid.xxx.ui является проектом RCP. Два других Java-проекта включены в бешеный проект RCP.

Я добавил эти два Java-проекта в качестве зависимостей в мой оголтелый проект.

enter image description here

enter image description here

Когда я собираю продукт RCP внутри Eclipse, все создается и работает.

При использовании мастера экспорта продуктов Eclipse в файле logs.zip появляется следующее сообщение об ошибке:

# 1/13/12 9:02:45 AM EST
# Eclipse Compiler for Java(TM) 0.B61, 3.7.0, Copyright IBM Corp 2000, 2010. All rights reserved.
----------
1. ERROR in C:\BOPEclipse3.7RaBId\gov.bop.rabid.xxx.ui\src\gov\bop\rabid\xxx\ui\video\RabidVideo.java (at line 3)
    import gov.bop.eclipse.logging.EclipseLogging;
           ^^^^^^^^^^^^^^^
The import gov.bop.eclipse cannot be resolved

Я знаю, что это какая-то ошибка зависимости, но я не могу найти, где в моем проекте RCP поместить зависимость.

Отредактировано, чтобы добавить:

Вот первая часть списка зависимостей продуктов Rabid:

enter image description here

Два других подключаемых модуля рабочего пространства включены в список зависимостей.

Вот первая часть списка подключаемых модулей конфигурации для запуска Eclipse продукта Rabid:

enter image description here

Чтобы ответить на вопросы Тонни Мэдсена (и я ценю интерес):

  • gov.bop.eclipse logging - это подключаемый модуль Eclipse из существующего JAR-архива.
  • com.aware.photocomponent - это подключаемый модуль Eclipse из существующего архива JAR.

Опять проводник пакетов с открытыми каталогами:

enter image description here

С этим рабочим пространством связано 0 ошибок и 0 предупреждений.

Ответы [ 2 ]

0 голосов
/ 22 марта 2012

Мне наконец удалось собрать пакет Eclipse RCP, когда я удалил проект подключаемого модуля gov.bop.eclipse.logging и добавил банку gov.bop.eclipse.logging в gov.bop.rabid.xxx.ui classpath.

Jar подключаемого модуля регистрации теперь является частью jar подключаемого модуля.Хотя это «работает», если я хочу обновить jar плагина регистрации, я должен обновить jar плагина пользовательского интерфейса.Это не элегантное решение, а просто эффективное решение.

Похоже, что это единственный способ включить внешние подключаемые модули Eclipse в пакет Eclipse RCP.Хотелось бы, чтобы кто-то доказал, что я неправ.

0 голосов
/ 23 января 2012

Вы получаете ошибку компилятора, это означает, что распознаватель OSGi был доволен вашей настройкой зависимости, в противном случае вы не смогли бы выполнить компиляцию с неразрешенной зависимостью.

Я подозреваю, что это связано с наличием.Двоичные файлы классов в проекте вместо исходных файлов .java.Попробуйте установить свойство output.. в gov.bop.eclipse.logging/build.properties в качестве пути к папке, содержащей пакеты с файлами .class (относительно корня проекта).

Если это подключаемые проекты, вы можете дважды проверить путь к классу, который будет использоваться при экспорте продукта, щелкнув правой кнопкой мыши файл gov.bop.rabid.xxx.ui / META-INF / MANIFEST.MFи выбрав Инструменты PDE -> Создать файл сборки Ant.Это сгенерирует файл build.xml, вы можете проверить цель "@dot", чтобы увидеть, какой путь к классу используется.

Некоторые другие причины такого рода проблем (которые, на самом деле, не таковы, имеют место)здесь):

  • Имеет неправильную Bundle-ClassPath запись в манифесте.Если значение не указано, значением по умолчанию является «.», Что означает, что файлы .class находятся в корне двоичного пакета.
  • Наличие в вашем пакете вложенных jar-файлов, причем один jar зависит от другого, но неопределение порядка компиляции этих jar-файлов (jars.compile.order).
...