詹金斯的新作品。
目前我们使用maven和Subversion作为SCM进行手动构建过程:
在本地工作副本文件夹中,POM文件有1.1.1-SNAPSHOT,问题 mvn release:clean release:prepare -P all-modules
这会创建一个标记https://avn/path/to/tag/xxx-1.1.1,而我的本地工作副本仍然在1.1.2-SNAPSHOT
问题 svn switch https://avn/path/to/tag/xxx-1.1.1
这会将我本地工作副本中的POM更新回1.1.1
问题 mvn clean install -Dbuild.env = pt -DskipTests = true -P all-modules
这将在我们预期的名称中创建内部版本号为1.1.1的EAR文件
现在我使用JENKINS自动化过程,我将命令#1和#3放入目标和选项中: release:clean release:prepare -P all-modules clean install -Dbuild.env = pt -DskipTests = true -P all-modules
该过程运行没有问题,但EAR文件的名称始终为-SNAPSHOT,内部版本号为1.1.2-SNAPSHOT,而不是1.1.1。
我知道这是因为“安装”的时间,POM的版本/父版本都有1.1.2-NAPSHOT。
我可以绕过的方式是什么?
答案 0 :(得分:0)
我设法使用batch命令和perl的混合方法进行解决。
for / f" delims =" %% a in(' perl -ne" print join('。',$ 2,$ 3,$ 4-1)if(/\((\d+).(\d+) )。(\ d +))/)&&($。< = 20)" pom.xml')做@set ver = %% a
svn switch https://svn/path/to/myproject/tags/myproject-%ver%`