3つのMavenコマンドを次々に実行するバッチファイルがあります。各コマンドは、スクリプトで正常に実行できます-それだけで!しかし、3つのコマンドすべてを同じファイルに追加すると、スクリプトが終了する前に最初のコマンドのみが実行されます。理由は何ですか?
mvn install:install-file -DgroupId=gdata -DartifactId=base -Dversion=1.0 -Dfile=gdata-base-1.0.jar -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=blogger -Dversion=2.0 -Dfile=gdata-blogger-2.0.jar -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=blogger-meta -Dversion=2.0 -Dfile=gdata-blogger-meta-2.0.jar -Dpackaging=jar -DgeneratePom=true
また、3つのコマンドをすべてコピーしてコマンドシェル(cmd.exe)に貼り付けると、問題なく次々に実行されます。したがって、これは明らかにDOSバッチファイルの問題です。
call
があれば役立ちます。しかし、今日はそうではありませんでした。
これは私がそれを解決した方法です:
バットファイルの内容(停止 cmdsのいずれかがエラーになった場合にバッチする)
cmd1 && ^
cmd2 && ^
cmd3 && ^
cmd4
バットファイルの内容(必要に応じて継続 cmdsのいずれかがエラーになった場合)
cmd1 & ^
cmd2 & ^
cmd3 & ^
cmd4
1つのスクリプトからさらにMavenビルドを実行するには、次の方法でWindows call関数を使用します。
call mvn install:install-file -DgroupId=gdata -DartifactId=base -Dversion=1.0 -Dfile=gdata-base-1.0.jar -Dpackaging=jar -DgeneratePom=true
call mvn install:install-file -DgroupId=gdata -DartifactId=blogger -Dversion=2.0 -Dfile=gdata-blogger-2.0.jar -Dpackaging=jar -DgeneratePom=true
call mvn install:install-file -DgroupId=gdata -DartifactId=blogger-meta -Dversion=2.0 -Dfile=gdata-blogger-meta-2.0.jar -Dpackaging=jar -DgeneratePom=true
特定のmvn
コマンドexec
sが返されないため、残りのコマンドは実行されません。
次のバッチファイルを作成して実行してください。
Echo one
cmd
Echo two
cmd
Echo three
cmd
最初の2行のみが実行されます。ただし、コマンドプロンプトで「exit」と入力すると、次の2行が処理されます。別のものをロードするシェルです。
これがスクリプトで発生しているものではないことを確認するには、最初のコマンドが終了したときに「exit」と入力します。
HTH!