Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven exec插件构建成功,即使可执行文件在Windows上失败_Java_Maven_Exec Maven Plugin - Fatal编程技术网

Java Maven exec插件构建成功,即使可执行文件在Windows上失败

Java Maven exec插件构建成功,即使可执行文件在Windows上失败,java,maven,exec-maven-plugin,Java,Maven,Exec Maven Plugin,我有一个maven项目,其中我使用maven exec插件执行一个windows.bat文件。问题是,即使bat执行失败(即退出代码为-1),项目的构建也是成功的 以下是我定义的插件: <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.4.0</vers

我有一个maven项目,其中我使用maven exec插件执行一个windows
.bat
文件。问题是,即使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>

org.codehaus.mojo
execmaven插件
1.4.0
编译
执行官
批处理文件
请注意,如果我在Unix上执行它(即execute.sh文件和build失败),其行为与预期相同。

请查看问题:

Windows批处理文件不可执行。它们是由
cmd
可执行文件运行的脚本

。。。简短的版本是:这不是“Maven”的问题,而是执行
exec()
命令的平台依赖性问题


如果
run.bat
中的命令设置了
%ERRORLEVEL%
,则该命令在执行CMD时设置,但未传递给CMD的调用者,即Maven Exec插件。退出你的
run.bat
with explicifyly应该可以做到这一点。

Gerold Broser,感谢你指向noahlz答案(实际上我已经找到了答案),不幸的是,退出%ERRORLEVEL%没有帮助。所以我按照noahlz的建议将.bat脚本解构为实际的命令,并直接从exec插件启动它。