当前位置: 首页 > 知识库问答 >
问题:

在gradle插件中定义任务依赖关系

苏高峰
2023-03-14
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)
}

共有1个答案

贝研
2023-03-14

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

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

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

如果希望依赖于特定插件(例如Java插件)的任务创建,请使用项目插件管理器的withidwithplugin方法。当应用了特定的插件时,将执行给定的闭包。

project.pluginManager.withPlugin('java') {
    project.tasks['check'].dependsOn task
}
 类似资料:
  • 我试图为其他gradle项目使用的自定义gradle插件构建一个jar。我使用java编写插件。我有一个问题,包括我的jar中的依赖项。如果我使用下面的代码构建jarbuild.gradle 在一个项目中应用插件时,我得到了一个针对guava类的NoClassDefFound异常。如果我在 它表示未找到Id为“my Plugin”的。如何在gradle插件jar中包含依赖项?

  • 我正在写一些gradle插件,现在我遇到了一个问题,DriverManager看不到buildscript依赖项中定义的JDBC驱动程序: 我有下一个build.gradle文件: 当我调用扩展DefaultTask的任务中定义的命令时

  • 如何编写自定义gradle插件来处理自定义存储库中自定义模块描述符中的依赖关系?gradle文档说了以下内容,但我还没有找到任何可以告诉我如何操作的内容。 即使您的项目使用的是自定义依赖关系管理系统或类似Eclipse的东西。类路径文件作为依赖关系管理的主数据,编写Gradle插件以在Gradle中使用此数据非常容易。 我一直在为ATG项目维护一个定制的常春藤解析器(源自此项目),但Gradle最

  • 我正在尝试创建一个自定义任务/插件(两者都拒绝工作),用于我的gradle构建脚本。 我正在使用groovy插件,希望在单独的文件中声明任务/插件,而不是在我的构建中。格拉德尔。 我的项目树如下所示: 我试图做的是在中创建我的任务/插件类,然后在。 让我举一个小例子。 TestTask。groovy: build.gradle 当我尝试使用我的gradle.build(清洁,构建等)做任何事情时,

  • 在另一个项目中,我使用/应用这个插件: 但是如何从MyGradlePlugin.groovy中的apply方法中迭代公共依赖项并打印它们的坐标(artifactId、groupId、version)?

  • 因此,自从添加新的Room android架构库以来,这种情况已经开始发生。我在AppDatabase_Impl没有过期时遇到问题,我通过在注释中添加kapt来修复它: < li>Android Room持久性库和Kotlin < li >在Kotlin中实现房间持久性库 < in Kotlin中的房间持久性库实现(Gradle错误) 我怀疑其他错误是由于AS、Kotlin和Java 8造成的,所