使用參數的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)代替參數會更好。 –