gradle有许多使用参数的任务。
gradle test --tests *Test
gradle dependencyInsight --dependency junit
如何在自己的自定义任务中访问参数?
我最近在一些内部Gradle任务(JavaExec,我认为)中偶然发现了@Option。注释的JavaDoc读取与您正在寻找的完全相同,但它是“内部”API。该功能是从Gradle 4.6开始的公共API的一部分:请参阅release notes和user 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
您应该考虑在调用Gradle时传递-P参数。
--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
这是我发现传递参数的方式。