我正在使用詹金斯的maven发布插件进行CICD。出于各种原因,我们没有像我们想象的那样做快照。我们将Jenkins设置为针对master分支运行构建,版本为0.1,1.0。我们希望每次运行Jenkins时都会发布版本号。这些是我在Jenkinsfile中的命令:
sh "mvn -B release:clean"
sh "mvn -B release:prepare"
sh "mvn -B release:perform"
结束收到错误You don't have a SNAPSHOT project in the reactor projects list
。因为release:prepare
总是寻找SNAPSHOT分支,所以不足为奇。有办法解决它吗?我为-DignoreSnapshots
找到了prepare
这个选项,但它没有用。
答案 0 :(得分:7)
发布插件在运行发布插件1.0-SNAPSHOT
之前打算mvn -B release:prepare
,它会将版本更改为发布版本1.0
,然后将其更改为{{1} (所谓的下一个开发版)。在1.1-SNAPSHOT
期间,您的版本release:perform
的已标记状态将从版本控制中签出,并将执行1.0
。
此外,使用发布插件可以通过以下方式完成:
mvn clean deploy
如果出现问题,您可以执行mvn -B release:prepare release:perform
(但如果已手动创建,则需要删除标记)。
如果你只有版本不起作用......除了mvn release:clean
不是分支,它是版本的东西...
您可以通过build-helper-maven-plugin和versions-maven-plugin
完成您喜欢的活动SNAPSHOT
之后,您应该将此更改提交到版本控制中(最好通过Jenkins中的Pipelines完成)。此外,通过scm-maven-plugin:
mvn build-helper:parse-version versions:set \
-DnewVersion=\${parsedVersion.majorVersion}.\
${parsedVersion.minorVersion}. \
${parsedVersion.nextIncrementalVersion} \
versions:commit
答案 1 :(得分:1)
不幸的是,使用maven发布插件是不可能的。你应该有SNAPSHOTs。
但如果您只需要更新项目版本,则可以使用maven版本插件
请参阅http://www.mojohaus.org/versions-maven-plugin/examples/set.html