我想自动执行Maven release: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会忽略此类输入,并使用默认值结束播放(并且也不会提示)。
那么,对于release:prepare plugin:goal是否有-D args?
谢谢。
最佳答案
您可以使用以下maven命令来执行此操作...
mvn --batch-mode release:prepare
这将假定您通常会提示您输入的任何内容为默认值。这就像运行发行版,每次问您一个问题时都按回车即可。例如,如果您当前项目的开发版本是1.2.3-SNAPSHOT,它将发布版本1.2.3,并将您的开发版本升级到1.2.4-SNAPSHOT。通常最好还是让Maven为您解决这些问题,因为Maven的目标是在配置中使用约定。但是,如果您需要指定非默认属性,则maven-release-plugin允许命令行属性覆盖,以及使用“release.properties”文件覆盖这些设置。
关于perl - 我如何在没有提示的情况下提供Maven发布准备信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2875961/