我正在使用maven-release-plugin,我注意到它最终将发布的版本更改为-SNAPSHOT。
这是我传递给maven的命令行args:
--batch-mode release:prepare -DupdateWorkingCopyVersions=false -Darguments="-DskipTests -Djava.awt.headless=true -Dmaven.javadoc.failOnError=false"
一切似乎进展顺利 - 我注意到插件的提交和推送,其中所有正确的版本号确实更新为没有-SNAPSHOT。
[WARNING] Ignoring unrecognized line: ?? myProject/pom.xml.releaseBackup
我在日志文件中看到了一些警告^(不确定这是否相关,但似乎与发布插件有关)
最后我看到插件再次修改了POM:
[INFO] Transforming 'myProject POM'...
[INFO] Updating my-project to 6.2-SNAPSHOT
在此之后,插件使用以下内容进行提交:
[maven-release-plugin] rollback changes from release preparation of myProject-6.2
为什么最后一点发生?
我不了解发布的生命周期:准备或发布:执行。为什么我的所有代码看起来都是两次构建的?
任何帮助表示赞赏。感谢
答案 0 :(得分:2)
据我了解,发布:准备
注意:我不确定这是否是特定订单。上面的列表并不是一个详尽的列表,只是我的回忆。
此时,该版本不存在。这就是发布:执行。发布:执行针对TAG的代码检查,并针对标记源构建工件。
这就是release:prepare将其移回快照版本的原因。它只是准备源代码来构建针对它的版本。切割标签后,在该分支上工作的开发人员可以继续提交更改,而不会影响发布:执行。它还允许在以后重新删除版本,因为它是根据标记构建的。
当然,这个插件有变化,有记录。但是,据我所知,这是一个常见的工作流程。