当我们发布项目时,它通常每次都是相同的。是否有任何参数或属性可以添加到发布中:准备允许以批处理模式释放模式?
示例:
What is the release version for "MyProject"? (company.jar.site:myproject) 0.0.1: : What is SCM release tag or label for "MyProject"? (company.jar.site:myproject) MyProject-0.0.1: : What is the new development version for "MyProject"? (company.jar.site:myproject) 0.0.2-SNAPSHOT: :
做这样的事情会很好:
mvn -B release:perform -DreleaseVersion:$nextMinorVersion$ or mvn -B release:perform -DreleaseVersion:$nextPatchVersion$ or mvn -B release:perform -Dtag:v$nextPatchVersion$ or mvn -B release:perform -Dtag:v$nextPatchVersion$-someCustomNaming
如果此类内容尚不存在,我将创建一个自定义Mojo来执行此操作。
或者,在上面的提示中,我们通常默认为第一个问题,第二个是“v”+当前版本,最后一个是下一个。如果我们能够以某种方式修改这些,那将解决当前的问题。
提前致谢。
答案 0 :(得分:8)
mvn -B release:prepare release:perform
-B用于批处理模式,它将使用它在非批处理模式下提供的默认值。通常对于X.Y.Z-SNAPSHOT,它会释放X.Y.Z并将新快照设置为X.Y.(Z + 1)-SNAPSHOT。
与maven一样,你可以对抗这个命名惯例并且有很多令人头疼的问题,或者让步并决定你的版本和标签将成为maven方式并获得免费赠品。我打了它,然后输了。如果你打算使用它,你必须完全放弃maven的众多方法之一。
我很高兴这样做,想要施加我自己的计划通常不是一个好主意。
答案 1 :(得分:2)
部分答案,在comment之后:
要更改标记名称,请使用-Dtag=xxx
参数release:prepare
。有关详细信息,请参阅the release:prepare documentation。
未经测试的代码警告
要以完全自动化的方式执行此操作,您需要在pom.xml中添加配置条目,您可以在其中设置标记名称:
<maven-release-plugin>
<configuration>
<tag>parent-${releaseVersion}</tag>
</configuration>
</maven-release-plugin>
答案 2 :(得分:1)
我这样做的方式是Performing a Non-interactive Release Using a properties file。
您在聚合器项目的根目录中创建了一个release.properties(包装:pom),并为每个项目添加以下表单的两个属性:
project.rel.<groupId>\:<artifactId>=<releaseVersion>
project.dev.<groupId>\:<artifactId>=<nextSnapshotVersion>
如果您想为标记使用特定文字,请添加以下属性
scm.tag=<tagLiteral>
以下是完成这两项工作的示例(指定每个模块的版本并定义用于在SCM中标记的文字):
scm.tag=my-project-0.2.1
project.rel.org.monachus.monkeyisland\:my-project=0.2.1
project.dev.org.monachus.monkeyisland\:my-project=0.2.2-SNAPSHOT
project.rel.org.monachus.monkeyisland\:module-a=0.1.1
project.dev.org.monachus.monkeyisland\:module-a=0.1.2-SNAPSHOT