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