Ошибка сборки Tycho: "... требуется пакет... но он не найден"
У нас есть приложение-плагин Eclipse Luna, которое мы пытаемся создать с помощью Tycho. Когда мы пытаемся сделать mvn clean verify
мы получаем этот тип сообщения:
[ERROR] Cannot resolve project dependencies:
[ERROR] Software being installed: our.app 1.0.0.qualifier
[ERROR] Missing requirement: our.app 1.0.0.qualifier requires 'bundle org.eclipse.core.runtime 3.7.0' but it could not be found
Когда мы просматриваем журналы, выясняется, что любой требуемый плагин Eclipse выдаст нам эту ошибку, и что это всего лишь первый элемент в списке на MANIFEST.MF для проверяемого плагина.
Я смотрел на другие вопросы, но, похоже, ни один из них не касается именно этой проблемы. Любые предложения будут ценны.
MANIFEST.MF:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Our App
Bundle-SymbolicName: our.app;singleton:=true
Built-By: Our Team (2014)
Bundle-ClassPath: .,
<some jars>
Bundle-Vendor: Our Team
Require-Bundle: org.eclipse.core.runtime;bundle-version="3.7.0",
org.eclipse.ui;bundle-version="3.7.0",
org.eclipse.ui.ide;bundle-version="3.7.0",
org.eclipse.core.resources;bundle-version="3.7.0",
org.eclipse.ui.forms;bundle-version="3.6.0",
org.eclipse.wst.sse.ui;bundle-version="1.3.0",
org.eclipse.jface.text;bundle-version="3.8.100",
org.eclipse.ui.workbench.texteditor;bundle-version="3.8.101",
org.eclipse.ui.views;bundle-version="3.6.0"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-Version: 1.0.0.qualifier
2 ответа
Я получаю похожую ошибку, если я удаляю <repository>
-тег из пом. Без этой информации Tycho не знает, где можно скачать необходимые пакеты. Поэтому вы должны добавить следующий фрагмент к вашему пом:
<repository>
<id>eclipse-indigo</id>
<url>http://download.eclipse.org/releases/indigo</url>
<layout>p2</layout>
</repository>
Я скопировал фрагмент отсюда, для получения дополнительной информации смотрите здесь.
Tycho читает ваши файлы MANIFEST.MF и feature.xml, чтобы найти зависимости ваших плагинов, и добавляет их (временно) в ваши POM, которые используются Maven для выполнения сборки. Идея Tycho - поддерживать зависимости исключительно в файлах MANIFEST.MF и feature.xml, освобождая вас от необходимости добавлять их также в POM. Однако вам все еще нужно добавить соответствующий репозиторий, обычно в родительском POM, в котором можно найти зависимые плагины. Это явно отсутствует в ваших POM.