开发过程中需要分离测试环境依赖和线上环境依赖。
举个简单的例子,有个依赖包hexo-api,在正式环境中是version=hexo-api-1.0,测试环境中是version=hexo-api-1.0-SNAPSHOT。
但实际项目中pom.xml是这样配的,如:1
2
3
4
5
6
7...
<groupId>com.qinguan</groupId>
<artifactId>hexo</artifactId>
<name>hexo-api</name>
<packaging>jar</packaging>
<version>1.0</version>
...
我不想因为发布一个测试版本1.0-SNAPSHOT的jar而去提交一个如下的变更。1
<version>1.0-SNAPSHOT</version>
那怎么办呢?可以试试maven-version-plugin。
具体用法:1
2
3
4
5//假定之前打包命令
clean compile -Papi deploy
//测试包打包命令
clean versions:set -DnewVersion=1.0-SNAPSHOT compile -Papi deploy
通过versions:set更改pom.xml中的version值,newVersion参数为目标版本号。
此时打开pom.xml,可以看到文件中的version值已由1.0更新为1.0-SNAPSHOT了,jar包也变成了hexo-api-1.0-SNAPSHOT.jar。