2011-07-04 121 views

回答

167

使用

call mvn clean 
call mvn package 

請注意,您不需要在批處理文件分號。而你需要使用call的原因是mvn本身是一個批處理文件,批處理文件需要用call互相調用,否則控制不會返回給調用者。

如果您希望後續命令回顯到命令行(以批輸出方式顯示),則在完成call mvn(下一行)後,還必須執行echo on。這是因爲mvn會關閉回聲並且不會重新打開。

+2

與'gradle'相同 – Prabs

12

你也可以有如下一行代碼:

call mvn clean package 
+3

不過,他們應該使用'call',以便在'mvn'命令後面寫入的任何內容都能運行。 – Joey

6

我有更多的項目來運行,我創造了這樣蝙蝠這樣的:

@echo off 
SET DEVELOPMENT_HOME=C:\Projects 

cd %DEVELOPMENT_HOME%\Project1\ 
call mvn clean install 

cd %DEVELOPMENT_HOME%\Project2\ 
call mvn clean install 
22

Joey的答案是偉大的,但也許更完整的代碼示例將幫助別人像我這樣誰也搞清楚了類似的問題建設從一個批處理文件的多個Maven項目在Windows:

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 
6

使用「呼叫」,當你想調用父文件中的另一個批處理文件,以便控制將返回到父批處理文件,它會繼續執行。

如呼叫MVN全新安裝

1

所觀察到的bahaviour來自MS-DOS 1.0的時間,保持了兼容性的原因,解決方案,您必須使用Windows 撥打以下方式功能:

call mvn clean 
call mvn package 

「調用」從另一個執行一個批處理程序並將其解釋爲子程序。

相關問題