batファイルで複数のmavenコマンドを実行するにはどうすればよいですか?


114

私は次のようなbatファイルを作りました:

mvn clean;
mvnパッケージ;

ただし、機能せず、最初のコマンドのみが実行されます。

誰かが私を助けてくれますか?

回答:


251

使用する

call mvn clean
call mvn package

バッチファイルにセミコロンは必要ないことに注意してください。また、使用する必要がある理由callは、mvnそれ自体がバッチファイルであり、バッチファイルはで相互に呼び出す必要があるためcallです。それ以外の場合、制御は呼び出し元に戻りません。

後続のコマンドをコマンドラインにエコーする(バッチ出力に表示する)場合は、完了echo oncall mvn(次の行)にも実行する必要があります。これは、mvnエコーがオフになり、オンに戻らないためです。


2
と同じgradle
Prabs 2017年

27

ジョーイの答えは素晴らしいですが、より完全なコード例は、Windowsのバッチファイルから複数のmavenプロジェクトをビルドするという同様の問題を理解している私のような他の人にも役立つでしょう:

REM maven itself uses a batch file so each mvn must be preceded by "call"
REM the -f flag specifies where the pom.xml is found for the project
REM mvn install will save the target output to %userprofile%\.m2\repository ...

call mvn install -f c:\Users\John\workspace\PropertiesReader\pom.xml

call mvn install -f c:\Users\John\workspace\PropertiesWriter\pom.xml

15

次のワンライナーを使用することもできます。

call mvn clean package 

4
それでも、コマンドのcall後に書き込むものはすべてmvn実行されるように使用する必要があります。
ジョーイ

9

実行するプロジェクトが他にもあるので、このようなバットを作成しました:

@echo off
SET DEVELOPMENT_HOME=C:\Projects

cd %DEVELOPMENT_HOME%\Project1\
call mvn clean install

cd %DEVELOPMENT_HOME%\Project2\
call mvn clean install

8

親ファイル内の別のバッチファイルを呼び出す場合は、 'call'を使用して、制御が親バッチファイルに戻され、実行が継続されるようにします。

例:mvn clean installを呼び出します


5

観察された動作はMS-DOS 1.0の時点からのものであり、互換性の理由から保持されています。解決策として、Windows 呼び出し関数を次のように使用する必要があります。

call mvn clean
call mvn package

「呼び出し」は、あるバッチプログラムを別のバッチプログラムから実行し、それをサブルーチンとして解釈します。


-1

以下を使用してMavenをビルドし、開発目的で任意のunixフォルダーに渡すことができます

SET projectName=commonutil
cd %gitpath%\%projectName%
call mvn clean install -DskipTests=true %password%
IF %ERRORLEVEL% EQU 0 (Echo No error found) ELSE goto exitdoor 
SET jarpath="%gitpath%\%projectName%\target\%projectName%-0.0.1-SNAPSHOT.jar"
copy /Y %jarpath% "%libpath%"
scpg3 %jarpath% %ssh_profile_name%@%hostname%:%dev_lib_folder_name%

-2

使用する

コール mvn clean package

sample
------
echo %test%
cd %test%\ManaulActionAddNotes-test
call mvn clean
cd %test%\restAuthentication-test
call mvn clean

1
他の回答よりも詳しい情報はどこにありますか?受け入れられた(9歳の)回答の複製のように見えます
jeb
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.