如何将tycho p2存储库构建的结果部署到本地文件系统上的某个位置或本地维护的p2存储库

时间:2011-11-07 21:57:33

标签: maven maven-3 tycho

我有一个工作的Tycho构建,可以生成一个可用的p2存储库。我目前的工作流程是手动将此构建的结果从项目的目标目录拖放到承载p2存储库的Web服务器。我的tycho构建结果看起来很正常:

${projectBaseDir}/target/repository
     - features
          - com.my.product.feature.201111071414.jar
     - plugins
          - com.my.product.plugins
     - artifacts.jar
     - content.jar

那么,将此构建的结果放在存储库目录中并将它们放在Web服务器上的“行业标准”是什么。

在这种情况下,我在运行构建服务器的同一台机器上运行p2存储库的Web服务器,因此可以使用目录命令的简单副本。

我使用资源尝试了maven-resources-plugin:copy-resources没有运气。我一直收到有关无效输出目录的错误。我真的不觉得复制资源是这里的方法,因为该目标的一般目的是将文件复制到 maven构建的目标目录,而不是复制文件< strong> from maven build的目标目录。

我的任务看起来很简单,我意识到复制文件有很多选择,但我正在寻找“maven方式”或更好的方法,“tycho方式”这样做。如果存在这样的标准。

感谢, TW

3 个答案:

答案 0 :(得分:2)

您可以使用antrun插件实现所需目标。它允许您在Maven构建期间使用ant任务/目标(如复制文件)来执行操作。

我希望以下内容对您有用:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.6</version>
    <executions>
        <execution>
        <id>configFix</id>
        <phase>package</phase>
        <configuration>
            <target name="configFix">
                <copy file="${project.build.directory}/p2/some.file" todir="C:\My\Directory" overwrite="true">
                </copy>
            </target>
        </configuration>
        <goals>
            <goal>run</goal>
        </goals>
        </execution>
    </executions>
</plugin>

答案 1 :(得分:1)

Minerva有一个example如何发布存储库。

答案 2 :(得分:0)

我刚刚完成了一个插件:http://download.ralph-schuster.eu/eu.ralph-schuster.uploadfiles-maven-plugin/STABLE/。它甚至提供了在存储库服务器上执行命令的方法,例如,以便在部署之前删除旧文件或合并工件。

希望它能解决部署问题。 :)