编程语言
首页 > 编程语言> > 如何从Java逻辑内部使Maven构建失败?

如何从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