我正在尝试构建镜像存储库,因此我不依赖于Web上的外部存储库。我知道使用tycho extras很容易镜像存储库,我的计划是公开一个网页,你可以在其中添加一个新的存储库/存储库和它们的iu / ius。我真的不知道如何发送所有这些参数(存储库的url和ius)到达后端服务器(托管在竹子中)并使用基本模板制作pom并添加用户提供的信息然后使用maven来制作实际的p2存储库。主要目标是使其可重复和可测试。我愿意接受建议或想法。
这是pom.xml
<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho.extras</groupId>
<artifactId>tycho-p2-extras-plugin</artifactId>
<version>${tycho-version}</version>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>mirror</goal>
</goals>
</execution>
</executions>
<configuration>
<source>
<!-- source repositories to mirror from -->
<repository>
<url>${repository.url}</url>
<layout>${repository.layout}</layout>
<!-- supported layouts are "p2-metadata", "p2-artifacts", and "p2" (for joint repositories; default) -->
</repository>
</source>
<!-- starting from here all configuration parameters are optional -->
<!-- they are only shown here with default values for documentation purpose -->
<!-- List of IUs to mirror. If omitted, allIUs will be mirrored. -->
<!-- Omitted IU version element means latest version of the IU -->
<!-- The destination directory to mirror to. -->
<destination>${project.build.directory}/repository</destination>
<!-- Whether only strict dependencies should be followed. -->
<!-- "strict" means perfect version match -->
<followStrictOnly>false</followStrictOnly>
<!-- Whether or not to follow optional requirements. -->
<includeOptional>true</includeOptional>
<!-- Whether or not to follow non-greedy requirements. -->
<includeNonGreedy>true</includeNonGreedy>
<!-- Filter properties. E.g. filter only one platform -->
<!-- Whether to filter the resulting set of IUs to only -->
<!-- include the latest version of each IU -->
<latestVersionOnly>false</latestVersionOnly>
<!-- don't mirror artifacts, only metadata -->
<mirrorMetadataOnly>false</mirrorMetadataOnly>
<!-- whether to compress the content.xml/artifacts.xml -->
<compress>true</compress>
<!-- whether to append to the target repository content -->
<append>true</append>
<!-- whether to mirror pack200 artifacts also. Available since tycho-extras 0.17.0 -->
<includePacked>true</includePacked>
</configuration>
</plugin>
</plugins>
这个问题是我可以通过参数传递存储库和布局,但只能传递一个存储库和一个布局,而不是ius。我需要对此进行参数化,以便添加多个存储库,布局和uis。这应该是可重复的,以便构建服务器自动化。
提前谢谢你。 马丁
答案 0 :(得分:0)
不可能通过命令行属性向POM注入XML片段,因此使用当前的方法实际上不会超出一个存储库和一个IU。
但是考虑到你只想在服务器上运行这个Maven构建,你可以在开始构建之前生成pom.xml。