使用[url=http://maven.apache.org/plugins/maven-release-plugin/]Maven Release Plugin[/url], 我们可以将项目开发中必不可少的tag, branch等源码版本控制操作集成于Maven环境之中. 以下是使用Maven Release Plugin在Subversion中创建Tag的基本步骤和注意事项.
1) Maven Release Plugin通过调用svn命令行与Subversion服务器交互,因此我们首先需要安装和配置[url=http://subversion.tigris.org/]Subversion客户端命令行[/url]程序. 当Subversion服务器需要用户名和密码进行校验时, 比较简单的方法实在svn配置文件中使用PUTTY plink.exe 或TortoisePlink.exe, 并通过 -l 和 -pw 命令行参数来定义用户名和密码.
2) 在项目pom文件中添加Subversion服务器配置, 定义Subversion中的trunk路径.
3) 在项目pom文件中添加Maven Release Plugin配置.
以上配置使用Maven Release Plugin 2.0-beta-9. tagBase定义了Subversion中的tag路径.
4) 使用以下命令行来检查各项设置是否正确
[quote]
mvn release:prepare -DdryRun=true
[/quote]
5) 使用以下命令行来创建Subversion Tag, 当此命令行运行时,Maven会提示询问下一个版本号, 并自动更新项目pom文件.
[quote]
mvn release:clean release:prepare
[/quote]
[color=brown]几个注意事项[/color]
1) 在使用Maven Release之前,必须check-in所有源码. 如果存在本地更改,Maven Release会报错并中止.
2) 项目中的所有的dependency必须是发布版本, 不能使用SNAPSHOT.
3) 上述的命令行会执行项目中的单元测试, 如果需要跳过单元测试, 可以使用以下参数
[quote]
-DpreparationGoals=clean
[/quote]
4) Maven Release在运行过程中,会修改scm中的connection设置, 如果release异常中止的话, 需要恢复原来的pom文件,才能再次运行. 因此在试验阶段, 最好准备一个本地备份.
5) 2.0-beta-9的tag设置中的变量处理存在问题 (见以上示例中注释掉的部分), 不过已经有人提供了[url=http://jira.codehaus.org/browse/MRELEASE-159]Patch[/url]
1) Maven Release Plugin通过调用svn命令行与Subversion服务器交互,因此我们首先需要安装和配置[url=http://subversion.tigris.org/]Subversion客户端命令行[/url]程序. 当Subversion服务器需要用户名和密码进行校验时, 比较简单的方法实在svn配置文件中使用PUTTY plink.exe 或TortoisePlink.exe, 并通过 -l 和 -pw 命令行参数来定义用户名和密码.
2) 在项目pom文件中添加Subversion服务器配置, 定义Subversion中的trunk路径.
<scm>
<connection>
scm:svn:svn+ssh://path/trunk
</connection>
<developerConnection>
scm:svn:svn+ssh://path/trunk
</developerConnection>
<url>
http://Subversion URL
</url>
</scm>
3) 在项目pom文件中添加Maven Release Plugin配置.
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.0-beta-9</version>
<configuration>
<!--
<tag>${version}</tag>
-->
<tagBase>
svn+ssh://path/tags
</tagBase>
</configuration>
</plugin>
</plugins>
</build>
以上配置使用Maven Release Plugin 2.0-beta-9. tagBase定义了Subversion中的tag路径.
4) 使用以下命令行来检查各项设置是否正确
[quote]
mvn release:prepare -DdryRun=true
[/quote]
5) 使用以下命令行来创建Subversion Tag, 当此命令行运行时,Maven会提示询问下一个版本号, 并自动更新项目pom文件.
[quote]
mvn release:clean release:prepare
[/quote]
[color=brown]几个注意事项[/color]
1) 在使用Maven Release之前,必须check-in所有源码. 如果存在本地更改,Maven Release会报错并中止.
2) 项目中的所有的dependency必须是发布版本, 不能使用SNAPSHOT.
3) 上述的命令行会执行项目中的单元测试, 如果需要跳过单元测试, 可以使用以下参数
[quote]
-DpreparationGoals=clean
[/quote]
4) Maven Release在运行过程中,会修改scm中的connection设置, 如果release异常中止的话, 需要恢复原来的pom文件,才能再次运行. 因此在试验阶段, 最好准备一个本地备份.
5) 2.0-beta-9的tag设置中的变量处理存在问题 (见以上示例中注释掉的部分), 不过已经有人提供了[url=http://jira.codehaus.org/browse/MRELEASE-159]Patch[/url]