我有一个普通的Eclipse插件构建与Tycho,并希望使用相同的Tycho构建一个更新站点。我的问题是弄清楚如何将工件从其Maven GAV(或可选的JAR)放入更新站点。
我尝试了什么:
<plugin>
<groupId>org.eclipse.tycho.extras</groupId>
<artifactId>tycho-p2-extras-plugin</artifactId>
<version>${tycho.version}</version>
<executions>
<execution>
<id>add-to-update-site</id>
<phase>install</phase>
<goals>
<goal>mirror</goal>
</goals>
<configuration>
<source>
<repository>
<url>${project.baseUri}/target/repository</url>
</repository>
</source>
<destination>${project.basedir}</destination>
<append>true</append>
</configuration>
</execution>
</executions>
</plugin>
这将从目标/存储库获取存储库,并将其与项目基本目录中的存储库合并。因此,目标/存储库中的每个插件都将添加到更新站点。
这适用于目标平台文件,但当然不适用于Maven GAV或JAR。我尝试将插件添加为依赖项并使用dependency:copy-dependencies
,但这不会创建P2存储库。
有插件tycho-p2-repository:assemble-repository,但我不确定它可以帮助我创建一个用于tycho-p2-extras-plugin
消费的P2存储库。或者甚至是独立的。
我找到了reficio's p2-maven-plugin,它可以从JAR生成P2存储库,但它根本不支持Tycho。
我觉得我离解决方案只有一步之遥。那么如何从Maven GAV(或JAR文件)构建P2存储库?
第一次这是不可能的。所以我使用命令行:
SET ECLIPSE_HOME=S:/Development/Eclipse 2018-12
SET EQUINOX_VERSION=1.5.200.v20180922-1751
SET CURRENT_PATH=%~dp0
SET SOURCE_REPOSITORY=%CURRENT_PATH%\dropin
SET TARGET_REPOSITORY=%CURRENT_PATH%\
java -jar "%ECLIPSE_HOME%/plugins/org.eclipse.equinox.launcher_%EQUINOX_VERSION%.jar"
-application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher
-metadataRepository "file:/%TARGET_REPOSITORY%" -artifactRepository "file:/%TARGET_REPOSITORY%"
-source "%SOURCE_REPOSITORY%" -publishArtifacts -append
但是我无法创建类别,因此默认情况下存储库似乎为空。