我有一个带有compileJava
任务的gradle脚本,我希望它提供两个不同的Jar
任务,jar
和jarForce
。 jarForce
任务应使用添加的-Awarns
选项编译源,以便将注释处理器错误视为警告,并且jar
任务应使用默认参数运行编译,以便在存在任何注释处理器错误时编译失败。我该如何实现?
最佳答案
请考虑以下内容,如果compileJava
在任务图中,则会修改jarForce
的选项:
apply plugin: 'java'
gradle.taskGraph.whenReady { taskGraph ->
if (taskGraph.hasTask(jarForce)) {
println "TRACER jarForce detected"
// we use verbose simply to illustrate that the options are changed
compileJava.options.compilerArgs << "-verbose"
compileJava.options.compilerArgs << "-Awarns"
}
}
task jarForce(dependsOn: 'jar') {
doFirst {
println "TRACER jarForce"
}
}
如果执行
gradle clean jar
和gradle clean jarForce
,您会看到输出完全不同,因为我们使用-verbose
作为示例。 -Awarns
的使用留给读者。