gpt4 book ai didi

gradle - 是Gradle中的pmd,存储库等任务

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

我正在Gradle中创建基本的自定义任务,并学习如何扩展它们以执行更复杂的操作(从此处学习:https://docs.gradle.org/current/userguide/tutorial_using_tasks.html)。

我正在扩展以学习Gradle的引用项目之一看起来像这样

// pmd config
pmd {
ignoreFailures = false
reportsDir = file("$globalOutputDir/pmd")
toolVersion = toolVersions.pmdVersion
}

repositories {
mavenCentral()
}

task listSubProjects{
doLast{
println 'Searching in root dir `'
}
}

我的问题是关于pmd和存储库部分的,为什么它们上没有像“任务”这样的明确限定词,但是我的listSubProjects需要一个任务限定词?这些是从插件继承的任务,不需要任务限定符吗?

最佳答案

您看到的块是task extensions,也是discussed here

插件创建者可以定义扩展名以允许用户配置插件:

// plugin code
class GreetingPluginExtension {
// default value
String message = 'Hello from GreetingPlugin'
}

// plugin code
class GreetingPlugin implements Plugin<Project> {
void apply(Project project) {
// Add the 'greeting' extension object
def extension = project.extensions.create('greeting', GreetingPluginExtension)
// Add a task that uses configuration from the extension object
...
}
}

project.extensions.create('greeting',...中,定义了稍后将在build.gradle文件中使用的 greeting块。

然后在用户build.gradle文件中
apply plugin: GreetingPlugin

// Configure the extension
greeting.message = 'Hi from Gradle'

// Same effect as previous lines but with different syntax
greeting {
message = 'Hi from Gradle'
}

通常,将扩展名选择为与插件和/或任务相同,这会使事情变得困惑。

关于gradle - 是Gradle中的pmd,存储库等任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47900126/

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