使用参数的gradle有很多任务。如何在gradle任务中使用参数?
gradle test --tests *Test
gradle dependencyInsight --dependency junit
如何在我自己的自定义任务中访问参数?
使用参数的gradle有很多任务。如何在gradle任务中使用参数?
gradle test --tests *Test
gradle dependencyInsight --dependency junit
如何在我自己的自定义任务中访问参数?
我最近偶然发现了一些内部的Gradle任务(JavaExec,我认为)中的@Option。注释的JavaDoc完全类似于您正在查找的内容,但它是“内部”API。该功能是公开API 的一部分,以Gradle 4.6开头:请参阅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
你应该考虑通过-p参数调用中的摇篮。
--project丙设置根项目的项目属性,例如-Pmyprop = myvalue的。请参见第14.2节“Gradle属性和 系统属性”。
考虑到这一点的build.gradle
task printProp << {
println customProp
}
调用摇篮-PcustomProp = myProp会给这个输出:
$ gradle -PcustomProp=myProp printProp
:printProp
myProp
BUILD SUCCESSFUL
Total time: 3.722 secs
这是我发现的传递参数的方式。
出于兴趣 - 这是什么具体用例? –
我在一个多项目中有一个规则,可以为每个匹配的项目类型打印传统的蚂蚁信息。我可以执行诸如ant report Java或antReportJavaScript之类的操作,并且只有这些类型才会在报表中显示。我认为用类型和格式(csv,wiki)代替参数会更好。 –