平常我们为了开发方便,都是用的SNAPSHOT版本,在阶段开发完成后,需要把SNAPSHOT改成RELEASE版本(比如1.0.0.SNAPSHOT-》1.0.0),防止线上环境被破坏。手动的步骤是把SNAPSHOT删掉,然后给代码打一个tag(备份用),然后mvn deploy把release版本的jar包上传到maven仓库,最后把版本号改成1.0.1.SNAPSHOT,这样太麻烦。好在maven提供了一个maven -release-plugin插件,我们看下怎么使用。
一、POM文件配置
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<!-- 分支的svn地址 -->
<configuration>
<tagBase>http://ip:port/aaa/bbb/tags/</tagBase>
</configuration>
</plugin>
</plugins>
</build>
<!-- maven私服地址,release插件会把release的jar包自动上传 -->
<distributionManagement>
<repository>
<id>releases</id>
<url>http://ip:port/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<url>http://ip:port/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
<!-- svn的地址,这三个区别是啥我也不太清楚。maven修改版本后会自动上传 -->
<scm>
<url>http://ip:port/aaa/bbb/trunk/</url>
<connection>scm:svn:http://ip:port/aaa/bbb/trunk/</connection>
<developerConnection>scm:svn:http://ip:port/aaa/bbb/trunk/</developerConnection>
</scm>
二、执行命令
#-Darguments="-DskipTests" 表示跳过测试
mvn release:prepare -Darguments="-DskipTests"
会让你输入需要的版本号等信息,根据情况自行输入即可。
执行完毕后,在tags文件夹下就会出现一个分支,并且项目的版本号也被改成了之前输入的版本号,并且项目已自动上传至SVN。
此时在项目中会有一些多余的文件,先别删,下个命令有用。
#这个命令会把之前传到tags的项目checkout下来,编译上传,即上传release版本的jar包
#后边两个参数表示跳过测试,忽略Javadoc生成时的错误
mvn release:perform -Darguments="-DskipTests -Dmaven.javadoc.failOnError=false"
#全部完成后,执行下列命令,清除掉之前生成的多余的文件
mvn release:clean
OK,这样我们即完成了代码的打分支以及版本号的修改