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

时间:2016-08-30 15:42:19

标签: gradle

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

gradle test --tests *Test
gradle dependencyInsight --dependency junit

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

2 个答案:

答案 0 :(得分:7)

我最近在一些内部Gradle任务(JavaExec,我认为)中偶然发现了@Option。注释的JavaDoc读取与您正在寻找的完全一样,但它是内部的#39; API。该功能是公共API的一部分从Gradle 4.6开始:请参阅release notesuser guide

刚试过这个:

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) {
}

结果:

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

BUILD SUCCESSFUL

Total time: 0.845 secs

答案 1 :(得分:0)

您应该考虑在调用Gradle时传递-P参数。

来自Gradle Documentation

  

- project-prop设置根项目的项目属性,例如-Pmyprop = myvalue。请参见第14.2节“Gradle属性和   系统属性“。

考虑这个build.gradle

task printProp << {
    println customProp
}

调用Gradle -PcustomProp = myProp将提供此输出:

$ gradle -PcustomProp=myProp printProp
:printProp
myProp

BUILD SUCCESSFUL

Total time: 3.722 secs

这是我发现传递参数的方式。