我有一个带有compileJava任务的gradle脚本,我希望它提供两个不同的Jar任务,jarjarForcejarForce任务应使用添加的-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 jargradle clean jarForce,您会看到输出完全不同,因为我们使用-verbose作为示例。 -Awarns的使用留给读者。

08-27 06:36