Java Maven:在路径中使用版本号发布签出

Java Maven:在路径中使用版本号发布签出,java,maven,release,Java,Maven,Release,我有一个简单的Maven项目和发布插件。我使用标准程序,比如 mvn发布:准备发布:执行-Pprofile。 以下是我对maven发布插件的定义: <plugin> <artifactId>maven-release-plugin</artifactId> <version>2.5.1</version> <configuration> <arguments>-f pom.xml<

我有一个简单的Maven项目和发布插件。我使用标准程序,比如 mvn发布:准备发布:执行-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>

maven发布插件
2.5.1
-f pom.xml
${basedir}
${basedir}/releases/
每次发布后,我都会在/release/文件夹中获得新的发布版本。 但我不打算将checkouted项目的历史记录存储在以下结构中: 发布日期/1.1/ 发布日期/1.2/ 发布日期/1.3/


etc-eg在发布时签出:在自己的目录中使用发布版本号执行。执行此操作并将发布版本(或标记名)替换为签出路径是否简单?

在通过
release:perform
执行签出期间,变量
${project.version}
仅保存项目快照版本

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

您可以通过这种方式配置
maven发布插件
(这是未经测试的代码):


maven发布插件
2.5.1
-f pom.xml
${basedir}
antrun:运行部署
maven antrun插件
1.7
跑

为什么不使用默认位置(目标)文件夹…?目标文件夹在每次发布时都会被覆盖-因此我无法在任何情况下处理发布签出历史。不幸的是,在这种情况下(在这里),此变量在插件初始化启动时初始化,并包含x.x.x-SNAPSHOT版本,不是释放。我测试过这个案子,但没有成功
<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>