如何使FailureResolutionAware适用于自定义Gradle异常?

时间:2017-03-08 12:27:37

标签: gradle

我刚刚了解了Gradle的FailureResolutionAware哪些自定义异常可以实现,以便为用户提供有关如何解决构建错误的其他指导。

我无法让它为我工作......我有一个例外实现界面,但它似乎没有得到BuildExceptionReporter(即方法)永远不会调用appendResolution()

有什么想法吗?这是我的自定义异常btw:

public class SomeFancyException extends GradleException implements FailureResolutionAware {
    public SomeFancyException(String message) {
        super(message);
    }

    @Override
    public void appendResolution(StyledTextOutput output, BuildClientMetaData clientMetaData) {
        output.text("Here is some fancy help for you!");
    }
}

任何帮助高度赞赏: - )

1 个答案:

答案 0 :(得分:2)

据我所知,在10分钟的调试会话中,您抛出的所有异常都会被捕获并包含在其他异常中。例如,当您在任务执行期间,在TaskExecutionException中或在直接在脚本中或在配置任务期间将其丢弃时,在GradleScriptException中抛出它。然后,此异常再次包含在LocationAwareException中。这个LocationAwareExceptionFailureResolutionAware,如果它也是appendResolution,则会将FailureResolutionAware调用委托给其原因。但LocationAwareException与您的异常之间的其他异常不会进一步委托此调用。所以我说这是一个纯粹的内部课程,你不应该也不能用自己的例外。