我正在写一个 Maven 插件。在 execute() 函数中,我需要实例化另一个类并监视某些活动。当满足某个条件时,我想取消 maven 进程的执行,但我不能只抛出异常,因为上下文会有所不同。这是一些代码,说明了我的意思:
public void execute() throws MojoExecutionException {
new AnotherClass() {
void monitorForSomething() {
// cancel execution here
}
}.start();
}
据我所知,为了取消构建而标记错误的唯一方法是引发异常,但如果从这个内部类引发这将是无用的,因为异常不会通过 start() 函数升级。除了使用至少说起来很麻烦的线程之外,我还有什么可以使用的吗?如果有一种方法可以通过方法停止构建而不是仅仅抛出异常,那将是非常好的。