Gradle:以编程方式为compileJava任务指定编译器选项

时间:2018-06-09 07:07:27

标签: java gradle groovy build annotation-processing

我有一个包含compileJava任务的gradle脚本,我希望它提供两个不同的Jar任务,jarjarForcejarForce任务应编译添加了-Awarns选项的源,以便将注释处理器错误视为警告,jar任务应使用默认参数运行编译,以便编译失败如果有任何注释处理器错误。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

考虑以下内容,在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 jargradle clean jarForce,则会看到输出完全不同,因为我们使用-verbose作为说明。 -Awarns的使用留待读者阅读。