gpt4 book ai didi

gradle - 如果发生标准错误,则无法进行Gradle构建

转载 作者:行者123 更新时间:2023-12-03 03:05:54 25 4
gpt4 key购买 nike

如果任何任务或插件在标准错误输出上打印了任何内容,如何配置Gradle最终使构建失败(而不是快速失败)?

我尚未在官方API中找到实现此目的的方法。

最佳答案

这是一个示例build.gradle,显示了它如何工作:

// create a listener which collects stderr output:
def errMsgs = []
StandardOutputListener errListener = { errMsgs << it }

// add the listener to both the project *and* all tasks:
project.logging.addStandardErrorListener errListener
project.tasks.all { it.logging.addStandardErrorListener errListener }

// evaluate the collected stderr output at the end of the build:
gradle.buildFinished {
if (errMsgs) {
// (or fail in whatever other way makes sense for you)
throw new RuntimeException(errMsgs.toString())
}
}


// example showing that the project-level capturing of stderr logs works:
if (project.hasProperty('projErr'))
System.err.print('proj stderr msg')

// example showing that the task-level capturing of stderr logs works:
task foo {
doLast {
System.err.print('task stderr msg')
}
}

// example showing that stdout logs are not captured:
task bar {
doLast {
System.out.print('task stdout msg')
}
}

下半部分的示例仅用于显示其按预期工作。尝试使用各种命令行args / options构建:
# doesn’t fail:
./gradlew bar
# fails due to project error:
./gradlew -PprojErr bar
# fails due to task error:
./gradlew foo
# fails due to both task and project error:
./gradlew -PprojErr foo

关于gradle - 如果发生标准错误,则无法进行Gradle构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53669653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com