我在项目中(在build.gradle
中定义了Gradle任务:
class TestTask : DefaultTask() {
@set:Option(option = "param")
@get:Input
var param: String = ""
@TaskAction
fun task() {
println("Hello, $param")
}
}
tasks.register<TestTask>("test_task") {
}
当我执行./gradlew test_task --param=foo
时,我会得到预期的输出:
Hello, foo
现在,我想将此项目做成一个要应用于另一个项目的插件,以便导出此任务。
我将以下内容添加到build.gradle
:
publishing {
publications {
create<MavenPublication>("maven") {
groupId = "com.test.plugin"
artifactId = "test_plugin"
version = "1.0"
from(components["java"])
}
}
}
在目标项目中,我使用以下内容:
buildscript {
repositories {
mavenLocal()
}
dependencies {
"com.test.plugin:test_plugin:1.0"
}
}
apply plugin: 'test_plugin'
现在,当我尝试执行./gradlew test_task --param=foo
时,得到以下输出:
Unknown command line option param.
如何使命令行选项可用于插件中的任务?