Java Maven插件停止执行而不引发MojoExecutionException异常
我正在写一个maven插件。在execute()函数中,我需要实例化另一个类并监视某些活动。当满足某个条件时,我想取消maven进程的执行,但我不能仅仅抛出一个异常,因为上下文将不同。下面是一段代码,说明了我的意思:Java Maven插件停止执行而不引发MojoExecutionException异常,java,maven,maven-2,Java,Maven,Maven 2,我正在写一个maven插件。在execute()函数中,我需要实例化另一个类并监视某些活动。当满足某个条件时,我想取消maven进程的执行,但我不能仅仅抛出一个异常,因为上下文将不同。下面是一段代码,说明了我的意思: public void execute() throws MojoExecutionException { new AnotherClass() { void monitorForSomething() { // cancel execution here
public void execute() throws MojoExecutionException {
new AnotherClass() {
void monitorForSomething() {
// cancel execution here
}
}.start();
}
据我所知,为取消生成而标记错误的唯一方法是引发异常,但如果从该内部类引发,则该方法将无效,因为异常不会通过start()函数升级。除了使用线程之外,还有什么我可以使用的,至少可以说是很麻烦的吗?如果有一种方法可以通过一个方法而不是仅仅抛出一个异常来停止构建,那就太好了。我会用try-catch块来包围内部类,看看引发了哪种异常。但是,如果这意味着出现了问题,您必须向Maven引发异常,这意味着破坏构建,否则就没有意义了。start方法不会引发任何异常,因为所有异常都被捕获。我想知道是否有可能从内部类引发异常而不实际引发异常。