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

问题描述 投票:5回答:2

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

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

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

gradle
2个回答
7
投票

我最近在一些内部Gradle任务(JavaExec,我认为)中偶然发现了@Option。注释的JavaDoc读取与您正在寻找的完全相同,但它是“内部”API。该功能是从Gradle 4.6开始的公共API的一部分:请参阅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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.