Gradle-зависимая задача не передает параметры командной строки родительской задаче - PullRequest
0 голосов
/ 04 сентября 2018

Я пишу пользовательскую задачу Gradle, которая принимает опцию из командной строки. Эта часть работает как ожидалось. Что вызывает у меня проблемы, так это то, что при вызове зависимой задачи опция командной строки отклоняется, поскольку она не относится к зависимой задаче. Вот пример, который демонстрирует проблему:

class CustomTask extends DefaultTask {
    @Option(option = "stuff", description = "Custom task stuff")
    String stuff

    @TaskAction
    void action() {
        if (this.stuff?.trim()) {
            println this.stuff
        }
        else {
            throw new InvalidUserDataException("No stuff!")
        }
    }
}

task custom(type: CustomTask)

task depends(dependsOn: 'custom')

Вот пути:

  1. gradle custom правильно выдает исключение
  2. gradle custom --stuff=mystuff испускает mystuff при запуске задачи.
  3. gradle depends правильно выдает то же исключение
  4. gradle depends --stuff=mystuff завершается с Unknown command-line option '--stuff'

Как заставить параметр командной строки --stuff перейти к задаче custom при вызове задачи depends?

1 Ответ

0 голосов
/ 04 сентября 2018

К сожалению, это одно из задокументированных ограничений параметров https://docs.gradle.org/current/userguide/custom_tasks.html#limitations

Вместо этого вы можете использовать свойства сборки и передавать их с -Pstuff=something

...