8

当我们发布项目时,通常每次都是一样的。是否有任何参数或属性可以添加到 release:prepare 以允许以批处理模式发布模式?

例子:

“MyProject”的发布版本是什么?(company.jar.site:myproject) 0.0.1: :
什么是“MyProject”的 SCM 发布标签或标签?(company.jar.site:myproject) MyProject-0.0.1: :
“MyProject”的新开发版本是什么?(company.jar.site:myproject) 0.0.2-SNAPSHOT: :

做这样的事情会很好:

mvn -B 发布:执行 -DreleaseVersion:$nextMinorVersion$ 或
mvn -B 发布:执行 -DreleaseVersion:$nextPatchVersion$ 或
mvn -B release:perform -Dtag:v$nextPatchVersion$ 或
mvn -B 发布:执行 -Dtag:v$nextPatchVersion$-someCustomNaming

如果这样的东西尚不存在,我将创建一个自定义 Mojo 来执行此操作。

或者,在上面的提示中,我们通常默认为第一个问题,第二个问题为“v”+当前版本,最后一个问题为下一个小问题。如果我们能以某种方式修改这些,那将解决眼前的问题。

提前致谢。

4

3 回答 3

9
mvn -B release:prepare release:perform

-B 用于批处理模式,它将使用在非批处理模式下提供的默认值。通常对于 XYZ-SNAPSHOT,它会释放 XYZ 并将新快照设置为 XY(Z+1)-SNAPSHOT。

与所有 maven 一样,您可以与这种命名约定作斗争并有很多头痛,或者屈服并决定您的版本和标签将成为 maven 方式并免费获得很多。我打了它,输了。如果您要使用它,这只是您必须完全放弃给 maven 的众多方法之一。

我很高兴这样做,想要强加自己的计划通常不是一个好主意。

于 2009-06-13T01:11:53.300 回答
2

部分答案,在您发表评论后:

要更改标签名称,请使用 的-Dtag=xxx参数release:prepare。有关详细信息,请参阅发布:准备文档

未经测试的代码警告

要以完全自动化的方式执行此操作,您需要在 pom.xml 中添加一个配置条目,您将在其中设置标签名称:

<maven-release-plugin>
   <configuration>
       <tag>parent-${releaseVersion}</tag>
   </configuration>
</maven-release-plugin>
于 2009-06-15T15:56:55.860 回答
1

我这样做的方式是使用属性文件执行非交互式发布

您在聚合器项目(具有包装:pom 的项目)的根目录中创建一个 release.properties,并为每个项目添加以下形式的两个属性:

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
于 2012-04-03T15:16:01.040 回答