パラメータを使用する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でした。この機能は、Gradle 4.6で始まるパブリックAPI の一部です。とuser guideを参照してください。あなたはGradleのを呼び出すに-P引数を渡すことを検討してください
$ gradle myTask --funky=foo
:myTask
Value of 'myOption': foo
BUILD SUCCESSFUL
Total time: 0.845 secs
:
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 Documentationから
:
--project-小道具は例-Pmyprop = myvalueため、ルートプロジェクトのプロジェクトプロパティを設定します。第14.2項「システムプロパティーのグレー表示プロパティーと 」を参照してください。
このbuild.gradleを考慮
task printProp << {
println customProp
}
起動のGradle -PcustomProp = MyPropでこの出力を与える:
$ gradle -PcustomProp=myProp printProp
:printProp
myProp
BUILD SUCCESSFUL
Total time: 3.722 secs
これは私がパラメータを渡すことが見いださ方法です。
興味深い - これは具体的な使用例ですか? –
私は、一致するプロジェクトの種類ごとにレガシーなant情報を出力するルールをマルチプロジェクトに持っています。私は、ant report JavaやantReportJavaScriptのようなことをすることができ、それらの型だけがレポートに入ります。代わりにタイプとフォーマット(csv、wiki)のパラメータを持つ方がいいと思う。 –