gpt4 book ai didi

gradle - 在gradle插件中定义任务依赖项

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

我正在尝试fix a gradle plugin检查TODO标签。
此插件添加了一个新任务(checkTodo),可用于运行检查。该任务不会自动运行,但是可以通过将以下行添加到build.gradle中来完成:check.dependsOn checkTodo我想通过在插件本身中声明此依赖项来消除使用该插件的每个build.gradle中对这一行的需要。这可能吗?
我尝试过的事情:

static void applyTasks(final Project project) {
TodoTask task = project.tasks.create("checkTodo", TodoTask)

project.task('check').dependsOn(task)
project.tasks().task('check').dependsOn(task)
project.tasks().check
project.getAllTasks(true).get('check').dependsOn(task)
project.getDefaultTasks().get('check').dependsOn(task)
}
project.task('check').dependsOn(task)提供:

Failed to apply plugin [class 'org.gradle.language.base.plugins.LifecycleBasePlugin']

Declaring custom 'check' task when using the standard Gradle lifecycle plugins is not allowed.`

project.getAllTasks(true).get(project)的集合不包含“检查”任务,其他的仅给出“未找到方法”错误。

最佳答案

问题是,在您应用插件时,特定的(或任何)check任务可能不存在。

要确保创建所有任务(甚至通过build.gradle中的用户代码),请使用afterEvaluate闭包。请注意,如果在整个构建中没有创建名为check的任务,则此方法仍将失败。

project.afterEvaluate {
project.tasks['check'].dependsOn task
}

如果您要依赖特定插件(例如Java插件)的任务创建,请使用项目插件管理器的 withIdwithPlugin方法。如果应用了特定插件,则将执行给定的闭包。
project.pluginManager.withPlugin('java') {
project.tasks['check'].dependsOn task
}

关于gradle - 在gradle插件中定义任务依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48008994/

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