我正在开发一个自定义 gradle 任务,我希望有一个选项,它的作用类似于标志并且不需要值。
我只是想检查它是否已设置
基本上:我可以使用插件 gradle my-task
或 gradle my-task --flag
并能够检查是否 --flag
code> 是否存在来定义插件处理。
我在官方文档中找不到任何内容
最佳答案
自 Gradle 4.6 起可使用任务的自定义命令行选项通过 @Option
任务属性 setter 上的注释。文档链接:Declaring and Using Command Line Options .
根据文档,通过boolean
支持无值命令行选项。属性。
boolean
,Boolean
,Property<Boolean>
Describes an option with the value
true
orfalse
. Passing the option on the command line treats the value astrue
. For example--enabled
equates totrue
. The absence of the option uses the default value of the property.
(未经测试)示例:
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");
}
}
}
关于Gradle 自定义任务选项没有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61502338/