gpt4 book ai didi

java - Gradle 名称绑定(bind)任务类型

转载 作者:行者123 更新时间:2023-12-03 04:07:01 25 4
gpt4 key购买 nike

创建名称为 jar 的任务时, Gradle 自动知道任务的类是 org.gradle.api.tasks.bundling.Jar .如何使用我的自定义任务复制它?
即我有以下类(class):

class MyTaskType extends DefaultTask {
@Input String name

// Options

@TaskAction
def generateImage() {
// Stuff
}
}
到目前为止,我一直在做以下事情:
task veryCoolTaskName(type:MyTaskType) {
name 'some-name'
}
我希望能够通过编写来定义这种类型的任务:
myTaskType {
name 'some-name'
}
就像 jar {...} .我怎样才能做到这一点?

最佳答案

这不是 Gradle 的工作方式。
jar { ... } 时,您实际上并没有创建新任务。相反,您引用的是现有任务 jar由插件创建的(例如 Java plugin ):

plugins {
id 'java'
}

jar {
// This works because the task was created by the plugin
}
如果没有应用任何插件,相同的摘录将失败,作为名为 jar 的任务不存在:
jar {
// This fails, because the task `jar` does not exist
}
相反,您需要创建任务来配置它:
task jar(type: Jar)

jar {
// This works because the task was created beforehand
}
当然,可以将任务的创建和配置结合起来:
task jar(type: Jar) {
// ...
}

关于java - Gradle 名称绑定(bind)任务类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64760260/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com