如何从Java逻辑内部使Maven构建失败?
作者:互联网
我正在开发一个项目,在该项目中,我希望使用Maven在构建过程中执行Java Main类. Main类的工作是验证某些给定的(当前为硬编码的)文件是否为有效的RAML文件.在理想的情况下,我希望构建能够在此类无效的情况下从此类逻辑内使构建失败,并且像maven一样,将失败消息通过“ [BUILD FAILURE]”消息返回给终端本机.
我将org.codehaus.mojo.exec-maven-plugin插件添加到了我的POM中,这使我可以执行前面提到的Java Main类. POM的该部分如下所示:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.4.0</version>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<mainClass>com.example.ubunfu.MainClass</mainClass>
<arguments>
<argument></argument>
</arguments>
<cleanupDaemonThreads>false</cleanupDaemonThreads> <!-- Prevents thread hanging -->
</configuration>
</execution>
</executions>
</plugin>
但是,我不确定如何从MainClass内部的逻辑中发出构建应该失败的信号-如果需要的话.我在Maven – Guide to Developing Java Plugins中读到了org.apache.maven.plugins.MojoFailureException.似乎我可以扔掉其中之一,但它会像我希望的那样失败.
我不确定要如何在MainClass中为我提供MojoFailureException类.我还没有找到一个JAR或其他任何东西,但是如果我了解Maven的工作原理,应该使用POM之外的某种附加功能(而不是JAR)来解决此问题.
如果您对此有任何见解,我将不胜感激.
-瑞安
解决方法:
似乎抛出任何异常都将导致构建失败.参见this answer.
要访问MojoFailureException,请添加以下依赖项:
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>3.3.3</version>
</dependency>
标签:maven,build,maven-3,plugins,java 来源: https://codeday.me/bug/20191120/2040399.html