如何将命令行参数传递给 Gradle Kotlin DSL
How to pass command line argument to Gradle Kotlin DSL
这是来自 Groovy 的示例,它完全代表了我想要实现的目标:
Command line
:
./gradlew jib -PmyArg=hello
build.gradle.kts
task myTask {
doFirst {
println myArg
... do what you want
}
}
此示例的来源是 here - option 3。
如何在 Kotlin DSL 中读取传递和读取 myArg
值?
一段时间后找到答案:
build.gradle.kts
val myArg: String by project // Command line argument is always a part of project
task("myTask") {
doFirst {
if (project.hasProperty("myArg")) {
println(myArg)
}
}
}
Command line
:
gradle myTask -PmyArg=foo
Output
:
$ gradle myTask -PmyArg=foo
> Task :myTask
foo
BUILD SUCCESSFUL in 1s
1 actionable task: 1 executed
相关链接:
- How to pass arguments from command line to gradle
- How to pass parameters or arguments into a gradle task
我像这样检索了我的任务的参数(build.gradle.kts 和 Kotlin DSL):
tasks.create("myCustomTask") {
doLast {
val myArg = properties["myArgName"]
// OR a more verbose form:
val myArg = project.properties["myArgName"]
}
}
./gradlew myCustomTask -PmyArgName=hello
这是来自 Groovy 的示例,它完全代表了我想要实现的目标:
Command line
:
./gradlew jib -PmyArg=hello
build.gradle.kts
task myTask {
doFirst {
println myArg
... do what you want
}
}
此示例的来源是 here - option 3。
如何在 Kotlin DSL 中读取传递和读取 myArg
值?
一段时间后找到答案:
build.gradle.kts
val myArg: String by project // Command line argument is always a part of project
task("myTask") {
doFirst {
if (project.hasProperty("myArg")) {
println(myArg)
}
}
}
Command line
:
gradle myTask -PmyArg=foo
Output
:
$ gradle myTask -PmyArg=foo
> Task :myTask
foo
BUILD SUCCESSFUL in 1s
1 actionable task: 1 executed
相关链接:
- How to pass arguments from command line to gradle
- How to pass parameters or arguments into a gradle task
我像这样检索了我的任务的参数(build.gradle.kts 和 Kotlin DSL):
tasks.create("myCustomTask") {
doLast {
val myArg = properties["myArgName"]
// OR a more verbose form:
val myArg = project.properties["myArgName"]
}
}
./gradlew myCustomTask -PmyArgName=hello