Опция Gradle Custom Task без значения - PullRequest
2 голосов
/ 29 апреля 2020

Я занимаюсь разработкой пользовательской задачи gradle и хотел бы иметь опцию, которая действует как флаг и не требует значения.

Я просто хочу проверить, установлен ли он

В основном: я могу использовать плагин либо gradle my-task, либо gradle my-task --flag и иметь возможность проверить, присутствует ли --flag или нет, чтобы определить обработка плагина.

Я не могу найти ничего в официальной документации

1 Ответ

2 голосов
/ 29 апреля 2020

Настраиваемые параметры командной строки для задач доступны начиная с Gradle 4.6 через @Option аннотацию на установщиках свойств задачи. Ссылка на документацию: Объявление и использование параметров командной строки .

Согласно документации, параметры командной строки без значения поддерживаются через свойства boolean.

boolean, Boolean, Property<Boolean>

Описывает параметр со значением true или false. Передача параметра в командной строке обрабатывает значение как true. Например, --enabled соответствует true. Отсутствие опции использует значение свойства по умолчанию.

(не проверено) Пример:

import org.gradle.api.tasks.options.Option;

public class MyTask extends DefaultTask {
    private boolean flag;

    @Option(option = "flag", description = "Sets the flag")
    public void setFlag(boolean flag) {
        this.flag = flag;
    }

    @Input
    public boolean isFlag() {
        return flag;
    }

    @TaskAction
    public void doWork() {
        if (flag) {
            getLogger().quiet("Flag is present");
        }
    }
}
...