如何在bat文件中执行多个maven命令?

我做了一个bat文件,如:

  mvn清洁;
 mvn包; 

但它不起作用,只有第一个命令被执行。

有人能帮我吗?

使用

call mvn clean call mvn package 

请注意,batch file中不需要分号。 而你需要使用call的原因是mvn本身就是一个batch file,batch file需要通过调用相互call ,否则控制不会返回给调用者。

Joey的答案很好,但也许一个更完整的代码示例可以帮助像我这样的其他人从Windows中的batch file中构build出多个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 -fc:\Users\John\workspace\PropertiesReader\pom.xml call mvn install -fc:\Users\John\workspace\PropertiesWriter\pom.xml 

你也可以有以下一行:

 call mvn clean package 

我有更多的项目运行,我创造了这样的蝙蝠:

 @echo off SET DEVELOPMENT_HOME=C:\Projects cd %DEVELOPMENT_HOME%\Project1\ call mvn clean install cd %DEVELOPMENT_HOME%\Project2\ call mvn clean install 

当你想要调用父文件中的另一个batch file时使用“call”,这样控件将返回到父batch file,并且将继续执行。

例如调用mvn clean install

观察到的bahaviour来自MS-DOS 1.0的时间,并保持兼容性的原因,作为解决scheme,您将使用Windows 调用函数按以下方式:

 call mvn clean call mvn package 

“调用”从另一个执行一个批处理程序,并将其解释为子程序。