Gradle: программно определяя параметры компилятора для задачи compileJava - PullRequest
0 голосов
/ 09 июня 2018

У меня есть скрипт gradle с задачей compileJava, и я хочу, чтобы он предоставил две разные задачи Jar, jar и jarForce.Задача jarForce должна скомпилировать источники с добавленной опцией -Awarns, чтобы ошибки процессора аннотаций рассматривались как предупреждения, а задача jar должна запускаться с компиляцией с аргументами по умолчанию, так что компиляция завершится неудачно, если есть какой-либо процессор аннотацийошибки.Как мне этого добиться?

1 Ответ

0 голосов
/ 09 июня 2018

Рассмотрим следующее, которое изменяет параметры на 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 оставлено на усмотрение читателя.

...