Я предложу два пути, один с Тихо и один с агрегатором B3.
1) Тихо :
Шаг 1. : определите целевую платформу с помощью встроенных инструментов PDE, которая использует существующие локальные сайты обновлений, и сохраните ее в виде файла .target. Затем вы можете ссылаться на этот файл в вашей сборке следующим образом:
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tycho.version}</version> <configuration>
<resolver>p2</resolver>
<target>
<artifact>
<groupId>org.eclipse.viatra2</groupId>
<artifactId>«project name where the target file resides»</artifactId>
<version>«artifact version»</version>
<classifier>«target filename without extension»</classifier>
</artifact>
</target>
<ignoreTychoRepositories>true</ignoreTychoRepositories>
</configuration>
</plugin>
Шаг 2. : Определить новый проект как сайт обновлений. Проект должен содержать файл category.xml, ссылающийся на используемые версии используемых функций целевой платформы из предыдущего шага. Вы можете создать этот файл category.xml с помощью мастера / редактора определения категории PDE.
Шаг 3. : просто опубликуйте свою сборку, используя архетип сайта обновлений:
<packaging>eclipse-repository</packaging>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-p2-publisher-plugin</artifactId>
<version>${tycho.version}</version>
<configuration>
<publishArtifacts>true</publishArtifacts>
</configuration>
</plugin>
</plugins>
</build>
2) B3 Агрегатор:
Проект Eclipse B3 содержит функцию агрегатора . Используя Агрегатор, вы определяете модель, которая использует существующие сайты обновлений, затем просто выполняете эту модель с помощью Агрегатора, и в результате получается сайт обновлений. В последнем случае вы можете либо создать составной сайт обновлений, который ссылается на другие сайты обновлений, либо создать автономную копию из исходных данных. В руководстве приведен простой пример, он прост в использовании.
3) Сравнение
Определение логики зеркалирования более простое в B3, поскольку модель содержит только описание зеркалирования, а также позволяет создавать составные сайты обновлений, которые ссылаются только на существующие сайты. Однако, если вы хотите сделать что-то еще, кроме обновления сайта, то это сделать сложнее. Кроме того, он может быть выполнен в сборках без головы (например, от Jenkins), но для этого требуется установка экземпляра Eclipse без головы. Документация содержит подробности, но инструмент не является автономным, как в случае Maven / Tycho.
В случае Tycho сложнее увидеть структуру результирующего сайта обновлений, однако полученная сборка является более расширяемой (например, вы можете просто добавить свои собственные функции, используя тот же тип сборки), и выполнить сборку вам нужен только Maven.
Итак, оба инструмента могут соответствовать вашим потребностям - вам нужно оценить их сильные и слабые стороны в вашем случае.