Я отвечаю за сборку проекта на основе Eclipse на основе Maven/Tycho. Фактически проект состоит из двух подпроектов Pa и Pb, каждый из которых строится отдельно. Pa содержит ряд функций и подключаемых модулей, собранных в репозиторий p2. Pb содержит еще несколько функций, а также продукт, все зависит от функций Pa.
Проблема возникает, когда я пытаюсь создать продукт Pb из функций в Pb, а также функций в Pa. Таким образом, мой файл продукта включает в себя такие функции:
<features>
<feature id="de.cau.cs.kieler.synccharts.feature" version="0.0.0"/>
<feature id="de.cau.cs.kieler.kaom.feature" version="0.0.0"/>
</features>
В то время как первая функция исходит из проекта Pb, вторая — из Pa и требует, чтобы Maven/Tycho загружал ее из репозитория p2. Репозиторий становится известен системе сборки через следующее определение в моем родительском файле pom.xml:
<profiles>
<profile>
<id>juno42</id>
<properties>
<tycho-version>0.17.0</tycho-version>
<targetJdk>1.5</targetJdk>
</properties>
<repositories>
<repository>
<id>p2.pa</id>
<layout>p2</layout>
<url>repository_url_of_project_pa</url>
</repository>
</repositories>
</profile>
</profiles>
Когда я пытаюсь собрать Pb (после того, как ранее собрал Pa и опубликовал сайт обновления по указанному выше URL-адресу), я получаю что-то вроде следующего сообщения об ошибке:
[ERROR] Software being installed: de.cau.cs.kieler.product 0.8.0.qualifier
[ERROR] Missing requirement: de.cau.cs.kieler.kaom.feature.feature.group 0.6.0.201304190326 requires 'de.cau.cs.kieler.core.model.gmf [0.2.2.201304190326]' but it could not be found
[ERROR] Cannot satisfy dependency: de.cau.cs.kieler.product 0.8.0.qualifier depends on: de.cau.cs.kieler.kaom.feature.feature.group 0.0.0
Maven/Tycho, очевидно, нашли функцию от Pa, которая должна быть включена в конечный продукт, но не смогли найти подключаемые модули, из которых эта функция состоит. Я дважды проверил, что плагины действительно опубликованы в репозитории Pa p2 и что требуемые версии совпадают.
Есть ли что-то, чего я не вижу? Разве Tycho не сможет найти плагины, из которых состоит функция, если она уже найдена? Любая помощь в решении этой проблемы приветствуется. :)
Кстати, в нашем проекте Tycho вычисляет зависимости на основе файлов MANIFEST.MF подключаемых модулей, а не на основе зависимостей, определенных в файлах pom.xml. Я проверил это, когда столкнулся с проблемой, что Tycho не может смешивать два реактора в одном билде.