我想自动执行Maven版本:使用Perl进行准备,以便用户不必回答版本名称的提示等。是否有可以提供的-D参数,以便不进行提示?我尝试了一个明显的解决方案,即通过perl代码将提示答案提供给mvn:
my $cmd = qq(mvn release:prepare -DautoVersionSubmodules=true-DpreparationGoals="clean install");
open MVN, "| $cmd";
print MVN "\n"; # default
print MVN "$cur_version";
print MVN "\n";
print MVN "$next_version";
print MVN "\n";
close MVN;
但是mvn忽略了这样的输入并使用默认值结束(并且也没有提示)。
那么,是否有-D args for release:prepare plugin:goal?
感谢。
答案 0 :(得分:9)
您可以使用以下maven命令来执行此操作...
mvn --batch-mode release:prepare
这将假定您通常会提示的任何内容的默认值;这就像运行一个版本,每次问你一个问题时只需点击输入。例如,如果您项目的当前开发版本是1.2.3-SNAPSHOT,它将发布版本1.2.3并将您的开发版本移至1.2.4-SNAPSHOT。通常最好让Maven为你解决这个问题,因为maven的目标是使用约定优于配置。但是,您是否需要指定非默认属性,maven-release-plugin allow命令行属性覆盖以及使用'release.properties'文件来覆盖这些设置。
答案 1 :(得分:4)
对于Maven部分,请参阅Performing a Non-interactive Release。
答案 2 :(得分:1)
答案 3 :(得分:0)
您可以使用mvn release:prepare命令的参数指定所有内容:
mvn release:prepare -DautoVersionSubmodules = true -DreleaseVersion = {your release version} -DdevelopmentVersion = {next version} -SNAPSHOT -Dtag = {your tag}