我有一个maven项目,我使用maven exec插件执行windows .bat
文件。问题是,即使蝙蝠执行失败(即退出代码为-1),项目的构建也是成功的。
这是我定义的插件:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.4.0</version>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>run.bat</executable>
</configuration>
</execution>
</executions>
</plugin>
请注意,如果我在Unix上执行它(即执行.sh文件并且构建失败),行为与预期相同。
答案 0 :(得分:1)
请参阅问题noahlz answer的Launching a windows batch script using Maven exec plugin ...:
Windows批处理文件不可执行。它们是由
cmd
可执行文件运行的脚本。...短版本是:这不是“Maven”的问题,这是执行
exec()
命令的平台依赖性问题。
如果run.bat
中的命令设置%ERRORLEVEL%
这是在执行CMD中设置但未传递给CMD的调用者,即Maven Exec插件。明确地退出run.bat
require_once('./../bootstrap.php');
应该可以解决这个问题。