gpt4 book ai didi

gradle - Gradle:自定义任务仅执行一次

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

我在gradle bulid中添加了checkstyle检查。
配置为:

checkstyle {
configFile = new File("${project.projectDir}/config/checkstyle/sun_checks.xml")
showViolations = false
}

checkstyleMain {
doLast{
println("checkstyle main")
project.ext.checkType = "main"
tasks.checkstyleReport.execute()
}
}


checkstyleTest {
doLast{
println("checkstyle test")
project.ext.checkType = "test"
tasks.checkstyleReport.execute()
}
}

task checkstyleReport{
checkstyleReport.outputs.upToDateWhen { false }
}

checkstyleReport << {
logger.info("Producing checkstyle html report")
final source = "${project.projectDir}/build/reports/checkstyle/${project.checkType}.xml"
final xsl = "${project.projectDir}/config/checkstyle/checkstyle-simple.xsl"
final output = "$buildDir/reports/checkstyle/${project.checkType}.html"
println(source)
println(xsl)
println(output)
ant.xslt(in: source,
style: xsl,
out: output
)
}

当我调用时:
gradle --daemon clean checkstyleMain checktyleTest

输出为:
...
:clean
:compileJava
:processResources
:classes
:checkstyleMain
checkstyle main
/<root_path_here>/build/reports/checkstyle/main.xml
/<root_path_here>/config/checkstyle/checkstyle-simple.xsl
/<root_path_here>/build/reports/checkstyle/main.html
:compileTestJava
:processTestResources
:testClasses
:checkstyleTest
checkstyle test

如您所见,checkstyleReport任务被调用两次,但仅产生一次输出。我什至尝试了 outputs.upToDateWhen { false },但没有用。

预先感谢您的帮助。

最佳答案

Gradle任务最多执行一次。此外,不支持显式调用任务,这将导致各种问题。正确的方法是为每个Checkstyle任务声明一个报告任务(例如,使用任务配置规则),并使其依赖于该Checkstyle任务(或使用mustRunAfter)。

关于gradle - Gradle:自定义任务仅执行一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17388882/

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