带有扩展名的自定义Gradle插件执行任务未正确使用输入
我将遵循Gradle文档的部分,特别是关于。文档提供的以下示例与预期完全一样:带有扩展名的自定义Gradle插件执行任务未正确使用输入,gradle,gradle-plugin,Gradle,Gradle Plugin,我将遵循Gradle文档的部分,特别是关于。文档提供的以下示例与预期完全一样: apply plugin: GreetingPlugin greeting.message = 'Hi from Gradle' class GreetingPlugin implements Plugin<Project> { void apply(Project project) { // Add the 'greeting' extension object
apply plugin: GreetingPlugin
greeting.message = 'Hi from Gradle'
class GreetingPlugin implements Plugin<Project> {
void apply(Project project) {
// Add the 'greeting' extension object
project.extensions.create("greeting", GreetingPluginExtension)
// Add a task that uses the configuration
project.task('hello') << {
println project.greeting.message
}
}
}
class GreetingPluginExtension {
def String message = 'Hello from GreetingPlugin'
}
我希望自定义插件执行外部命令(使用),但是当将任务更改为类型(包括Exec以外的类型,例如)时,生成的输入将停止正常工作:
// previous and following sections omitted for brevity
project.task('hello', type: Exec) {
println project.greeting.message
}
输出:
> gradle -q hello
Hi from Gradle
> gradle -q hello
Hello from GreetingPlugin
有人知道问题可能是什么吗?这与任务类型无关,这是典型的
,谢谢你的回答。不过,这只能解释为什么会出现这个问题。你知道有什么解决方案或替代方案可以达到预期的效果吗?嗯,我确实想解决这个问题。。。就像大多数人在这个网站上提问一样。:)谢谢你的解决方案。
project.task('hello') << {
println project.greeting.message
}
project.task('hello', type: Exec) {
println project.greeting.message
}
void apply(Project project) {
project.afterEvaluate {
project.task('hello', type: Exec) {
println project.greeting.message
}
}
}