在某些环境中,可能需要执行非交互式发布。这意味着发布插件将从系统属性(在命令行上设置)或属性文件(release.properties)获取所需的参数。
为了防止 Release Plugin 提示用户输入任何信息,Maven 应该进入批处理模式。
mvn -B release:prepare
要么
mvn --batch-mode release:prepare
在没有其他配置的情况下使用批处理模式将导致发布插件使用发布版本、SCM 标签和下一个开发版本的默认值。这些值也可以从命令行设置。
可以使用tag属性设置 SCM 标签名称。发布版本和新开发版本的默认值可以分别使用属性releaseVersion和developmentVersion设置。
mvn --batch-mode -Dtag=my-proj-1.2 release:prepare \ -DreleaseVersion=1.2 \ -DdevelopmentVersion=2.0-SNAPSHOT
因为一个发布可能包含多个发布版本和 SNAPSHOT 版本(对于多模块项目),所以有一个特定的格式来设置这些值。对于发布版本,属性名称应以project.rel开头,对于新开发版本,应以project.dev开头。这些前缀后跟项目的 groupId 和 artifactId(用冒号分隔)。所以结果看起来像下面的例子。
mvn --batch-mode -Dtag=my-proj-1.2 -Dproject.rel.org.myCompany:projectA=1.2 \ -Dproject.dev.org.myCompany:projectA=1.3-SNAPSHOT release:prepare
使用此约定,可以在命令行上指定多个发布版本和 SNAPSHOT 版本(每个项目模块一个)。
这些属性可以与releaseVersion和developmentVersion结合使用。在两者都使用的情况下,releaseVersion和developmentVersion充当未使用groupId:artifactId格式赋予特定值的模块的默认值。