10

ユーザーがバージョン名などのプロンプトに答える必要がないように、Perl を使用して Maven release:prepare の実行を自動化したいのですが、プロンプトが表示されないように指定できる -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 プラグイン:goal の -D 引数はありますか?

ありがとう。

4

4 に答える 4

12

次のmavenコマンドを使用してそれを行うことができます...

mvn --batch-mode release:prepare

これにより、通常プロンプトが表示されるすべてのデフォルトが想定されます。リリースを実行して、質問されるたびにエンターを押すようなものです。たとえば、プロジェクトの現在の開発バージョンが 1.2.3-SNAPSHOT の場合、バージョン 1.2.3 がリリースされ、開発バージョンが 1.2.4-SNAPSHOT に移行します。Maven の目標は設定よりも規則を使用することであるため、通常は Maven にこの問題を解決させるのが最善です。ただし、デフォルト以外のプロパティを指定する必要がある場合は、maven-release-plugin でコマンド ライン プロパティのオーバーライドを許可し、これらの設定をオーバーライドするために「release.properties」ファイルを使用します。

于 2010-05-21T17:50:44.933 に答える
4

Maven 部分については、 非インタラクティブなリリースの実行を参照してください。

于 2010-05-20T16:54:55.920 に答える
1

求めるのが Perl ソリューションである場合、コマンドライン引数は通常、systemコマンドを介して実行されます。

試すsystem $cmd;

私が知る限り、ファイルハンドルを開いたり閉じたりする必要はありません。

于 2010-05-20T16:56:32.343 に答える
0

mvn release:prepareコマンドの引数を使用してすべてを指定できます。

mvn release:prepare -DautoVersionSubmodules = true -DreleaseVersion={リリースバージョン}-DdevelopmentVersion={次のバージョン}-SNAPSHOT-Dtag={タグ}

于 2012-12-20T13:26:45.257 に答える