【问题标题】:Gradle error: Could not find method add() for argumentsGradle 错误:找不到参数的方法 add()
【发布时间】:2017-10-03 00:44:05
【问题描述】:

我正在使用 gradle 2.12,并且我有一个按以下方式构建的多模块 java gradle 项目 -

parentProject  
|__module1  
   |__src  
   |__build.gradle  
|__module2  
   |_src  
   |__build.gradle  
|__build.gradle

settings.gradle 定义为 -

include "module1"
project(":module1").projectDir = file("path/to/module1")

include "module2"
project(":module2").projectDir = file("path/to/module2")

module2 依赖于 module1,并且依赖项在 buildscript 中是必需的。我遵循了this 示例,该示例显示了一种解决方法,因为 gradle 不允许构建脚本中项目的类路径依赖项。我在 module2 的 build.gradle 中所做的是 -

buildscript {
    repositories {
        mavenLocal()
    }

    project.getTasks().add([name: "module1", type: GradleBuild]) {
        buildFile = '../module1/build.gradle'
        tasks = ['pluginJar']
    }.execute()
}

apply plugin: java

dependencies {
    // project specific dependencies
}

我开始收到以下错误 -

Error:(13, 0) Could not find method add() for arguments [{name=module1, type=class org.gradle.api.tasks.GradleBuild}, build_c3cjs9wfepa1xdklituv2tk9i$_run_closure1$_closure3@51bcefbf] on task set.

我搜索了类似的错误,找到了this的解决方案,但对我没有帮助。

这就是我的项目结构,我无法更改它以使 module1 成为独立构建。

请指教。感谢您的帮助!

谢谢

【问题讨论】:

    标签: java gradle build-process


    【解决方案1】:

    您尝试调用的方法将在TaskContainer 中定义。如您所见,事实并非如此。

    试试:

    project.getTasks().create(name: "module1", type: GradleBuild) {
        buildFile = '../module1/build.gradle'
        tasks = ['pluginJar']
    }
    

    如您所见,我省略了对 execute 的调用 - 您永远不应该直接调用任务。

    【讨论】:

    • 感谢 Opal 的回复!事情是这样的,这里的module1是一个gradle-plugin,在我尝试了你的建议之后,它现在在构建过程中说它找不到指定的插件。
    • @AdeeJ 直接调用它怎么样,我的意思是调用execute()
    • 构建无限循环。每当调用模块的 build.gradle 时,gradle 都会使用它们各自的 build.gradle 文件评估所有模块。当 module2 的 build.gradle 被评估时,它会依次调用 module1 的构建脚本。
    • @AdeeJ 我怀疑如果没有可运行的示例我是否可以提供帮助。
    • 我在此处添加了示例代码 - github.com/ajuwala/gradle-multimodule-example 如果您需要更多信息,请查看并告诉我。
    【解决方案2】:

    正如 Opal 所说,这是不可能的。

    【讨论】:

      猜你喜欢
      • 2014-09-13
      • 2018-01-18
      • 2016-02-28
      • 1970-01-01
      • 2018-02-23
      • 1970-01-01
      • 1970-01-01
      • 2016-04-29
      • 2022-01-23
      相关资源
      最近更新 更多