ras*_*cio 94 windows batch-file maven
我制作了一个蝙蝠文件:
mvn clean; mvn package;
但它不起作用,只执行第一个命令.
有人能帮我吗?
Joe*_*oey 224
使用
call mvn clean
call mvn package
Run Code Online (Sandbox Code Playgroud)
请注意,批处理文件中不需要分号.而你需要使用的原因call是它mvn本身是一个批处理文件,批处理文件需要相互调用call,否则控件不会返回给调用者.
如果您希望后续命令回显到命令行(在批处理输出中显示),则还必须echo on在call mvn完成后执行(在下一行).这是因为mvn关闭回声并且不会将其重新打开.
小智 26
Joey的答案很棒,但也许一个更完整的代码示例将帮助像我这样的其他人,他们也在解决从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
Run Code Online (Sandbox Code Playgroud)
car*_*ing 13
您还可以使用以下单行:
call mvn clean package
Run Code Online (Sandbox Code Playgroud)
我有更多项目要运行,我创建了这样的蝙蝠:
@echo off
SET DEVELOPMENT_HOME=C:\Projects
cd %DEVELOPMENT_HOME%\Project1\
call mvn clean install
cd %DEVELOPMENT_HOME%\Project2\
call mvn clean install
Run Code Online (Sandbox Code Playgroud)
观察到的行为来自 MS-DOS 1.0 时代,出于兼容性原因保留,作为解决方案,您应按以下方式使用 Windows调用函数:
call mvn clean
call mvn package
Run Code Online (Sandbox Code Playgroud)
“调用”从另一个执行一个批处理程序并将其解释为子程序。
| 归档时间: |
|
| 查看次数: |
58982 次 |
| 最近记录: |