因此,我试图在Gradle中向控制台输出一些内容,即使构建失败。我怎样才能做到这一点?即使构建失败,Gradle运行任务
我发现build.finalizedBy(taskName)
但只有在构建正常完成时才会运行。
因此,我试图在Gradle中向控制台输出一些内容,即使构建失败。我怎样才能做到这一点?即使构建失败,Gradle运行任务
我发现build.finalizedBy(taskName)
但只有在构建正常完成时才会运行。
您可以使用gradle.buildFinished
或终结器任务(如您所述)。
在您的示例中,如果build
任务执行,build.finalizedBy(taskName)
将仅执行taskName
。如果在执行build
任务之前构建失败,则不会执行taskName
。
例如,这将根据构建的结果的消息:
gradle.buildFinished { result ->
if (result.failure) {
logger.lifecycle("build failed")
} else {
logger.lifecycle("build successful")
}
}
你可以让任何构建通过使用摇篮调用的参数--continue
在任务失败继续。如果您不想键入此参数的所有时间,你可以在你的settings.gradle
使用下面的代码:
startParameter.continueOnFailure = true
请注意,其他任务可能会失败,因为失败的早期任务。使用此选项,将执行通过finalizedBy
连接的任务,但如果任务是相关的,则只应使用此选项,即使对于非故障情况也是如此。
当然,您还可以使用Gradle
对象或其TaskExecutionGraph
的生命周期侦听器。您可以使用
afterTask
TaskExecutionListener
实施buildFinished
(对于整个编译)