使用maven和Tycho p2 extras创建镜像存储库并动态添加新的存储库和ui

时间:2014-09-30 18:59:04

标签: maven bamboo tycho p2 mirroring

我正在尝试构建镜像存储库,因此我不依赖于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。这应该是可重复的,以便构建服务器自动化。

提前谢谢你。 马丁

1 个答案:

答案 0 :(得分:0)

不可能通过命令行属性向POM注入XML片段,因此使用当前的方法实际上不会超出一个存储库和一个IU。

但是考虑到你只想在服务器上运行这个Maven构建,你可以在开始构建之前生成pom.xml。