【发布时间】:2017-12-31 03:34:57
【问题描述】:
根据 Groovy 文档 Example 40.2,应该为任务创建一个新类(只需将其复制到 build.gradle):
task hello(type: GreetingTask)
class GreetingTask extends DefaultTask {
@TaskAction
def greet() {
println 'hello from GreetingTask'
}
}
但如果你真的尝试这样做,类声明会被标记为错误,因为没有编写抽象方法。其中大约有十个应该在这里......真的不可能像文档中那样以便宜的方式完成任务类吗?文档有什么问题?或者更确切地说,我的 IntelliJ 上有一些设置?
【问题讨论】:
-
好吧,如果您只需要该类型的一项任务,则不需要自己的类,而只需
task hello(type: GreetingTask) { doLast { println 'hello from ad-hoc task' } }。但是你的例子对我来说很好,完全复制/粘贴。 -
当然,我正在尝试为一些实际任务创建一个类(我想使用同一个类启动不同的任务)。但由于这个问题,它不起作用。所以,我放了一小段不起作用的代码。根据规则......我相信它也适用于文档作者。我怀疑原因是我在 IntelliJ 中有一些不同的设置。但是要检查什么?
-
它可以从命令行工作吗?你能显示错误吗?
-
我没有安装 gradle,AFAIK,只有 IntelliJ 中的 Gradle 插件。至少,我不能从命令行运行它。我希望它在 IntelliJ 中工作。
-
顺便说一句。在我看来,每个项目,无论是最小的 test-poc 都应该使用 Gradle Wrapper。然后您知道,任何不故意忽略它的人都在使用与您设计构建的完全相同的 Gradle 版本构建您的项目,并且该版本适用于您的构建,而想要构建它的人只需要安装兼容的 Java 版本即可。
标签: class intellij-idea gradle gradle-plugin gradle-task