Maven:在路径中发布带有版本号的结帐

时间:2015-02-27 10:29:04

标签: java maven release

我有简单的Maven项目和发布插件。我使用标准程序 mvn release:prepare release:perform -Pprofile。 这是我对maven发布插件的定义:

<plugin>
   <artifactId>maven-release-plugin</artifactId>
   <version>2.5.1</version>
   <configuration>
     <arguments>-f pom.xml</arguments>
     <baseDirectory>${basedir}</baseDirectory>
     <workingDirectory>${basedir}/releases/</workingDirectory>
   </configuration>
</plugin>

每次发布​​后,我都在/ release /文件夹中获得了新版本。 但是我不会在下面的结构中存储checkouted项目的历史: 发布/ 1.1 / 发布/ 1.2 / 释放/ 1.3 /

等 - 例如,在发布时进行结账:使用发行版本号在自己的目录中执行。这是一种简单的方法,并将发布版本(或标签名称)替换为结帐路径吗?

1 个答案:

答案 0 :(得分:0)

release:perform结账期间,变量${project.version}仅保留项目快照版本。

执行此操作的一种方法是在调用release:perform时执行add a goal。这可能是一个ant任务,它将默认结帐文件夹的内容复制到您希望的位置

您可以通过这种方式配置maven-release-plugin(这是未经测试的代码):

<plugin>
   <artifactId>maven-release-plugin</artifactId>
   <version>2.5.1</version>
   <configuration>
     <arguments>-f pom.xml</arguments>
     <baseDirectory>${basedir}</baseDirectory>
     <goals>antrun:run deploy</goals>
     <!-- use default workingDirectory -->
   </configuration>
</plugin>
<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.7</version>
    <executions>
        <execution>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <target>
            <copy todir="${basedir}/releases/${project.version}">
                <fileset dir="${project.build.directory}/checkout"/>
             </copy>
        </target>
    </configuration>
</plugin>