如何在gradle任务中使用参数?

Joh*_*ier 6 gradle

gradle有许多使用参数的任务.

gradle test --tests *Test
gradle dependencyInsight --dependency junit
Run Code Online (Sandbox Code Playgroud)

如何在自己的自定义任务中访问参数?

Axe*_*gel 9

我最近在一些内部Gradle任务(JavaExec,我认为)中偶然发现了@Option.注释的JavaDoc读取与您正在寻找的完全相同,但它是"内部"API.该功能是从Gradle 4.6开始的公共API的一部分:请参阅发行说明用户指南.

刚试过这个:

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

class MyTask extends DefaultTask {
    @Option(option="funky", description="test")
    String myOption

    @TaskAction
    void echoOption() {
        logger.lifecycle("Value of 'myOption': ${myOption}")
    }
}

task myTask(type: MyTask) {
}
Run Code Online (Sandbox Code Playgroud)

结果:

$ gradle myTask --funky=foo
:myTask
Value of 'myOption': foo

BUILD SUCCESSFUL

Total time: 0.845 secs
Run Code Online (Sandbox Code Playgroud)