只有在执行sonarqube
任务后满足条件时,我才有一个应该运行特定Gradle任务(build
任务)的项目。此任务可能会失败,因为它与有时不可用的远程服务器通信。如果服务器不可用,我想静默处理错误,将一些消息打印到控制台,而不是使整个构建失败。
目前,我可以使用以下配置执行此操作:
build.doLast {
if ('desired.value' == System.properties['some.prop']) {
try {
tasks.sonarqube.execute()
} catch(e) {
...
}
}
}
但是使用这种方法我得到了弃用消息。读了一下之后我认为不应该使用execute
,所以我提出了这个:
if ('desired.value' == System.properties['some.property']) {
build.finalizedBy sonarqube
}
但是在这种情况下,如果sonarqube
任务失败,我的整个构建也会失败。在这种情况下,如何处理sonarqube
任务失败?
我正在使用Gradle 4.5.1
。
修改
使用以下命令运行构建:
./gradlew build
如下所示修改它会导致Gradle不仅忽略sonarqube
次失败,还会忽略build
失败,这不是我想要的:
./gradlew build --continue