找不到参数 Gradle 的方法 compile()

2022-08-31 05:54:53

寻找这个解决方案太久了,我不确定我是否错过了它,或者只是打错了什么,但我的Gradle脚本将无法编译。我正在迁移到Gradle,并且对它非常陌生。我非常习惯于使用Maven进行依赖管理,但Gradle现在看来是最好的。从运行这段代码中:

dependencies {
  compile group: 'org.bukkit', name: 'bukkit', version: '1.7.9-R0.1-SNAPSHOT'
  compile('io.ibj:MattLib:1.1-SNAPSHOT') {
    exclude group: 'de.bananaco'
    exclude 'net.milkbowl:vault:1.2.27'
  }
  compile group: 'net.citizensnpcs', name: 'citizens', version: '2.0.12'
  compile group: 'com.sk89q', name: 'worldedit', version: '5.6.1'
  compile group: 'com.sk89q', name: 'worldguard', version: '5.9'
  compile group: 'net.milkbowl', name: 'vault', version: '1.2.12'
  compile fileTree(dir: 'libs', includes: ['*.jar'])
}

注意:我确实应用了java,maven,nexus,shadow和rebel插件。

当我运行我的Gradle任务时,我遇到这个错误:

Could not find method compile() for arguments [[io.ibj:MattLib:1.1-SNAPSHOT], build_1b5iofu9r9krp7o8mme0dqo9l$_run_closure2_closure8@66fb45e5] on root project 'project'

如果我从项目中删除依赖项并将其重新插入为MattLib

compile 'io.ibj:MattLib:1.1-SNAPSHOT'

脚本已完成,但我有依赖项问题。我在这里读到:

dependencies {
  compile("org.gradle.test.excludes:api:1.0") {
    exclude module: 'shared'
  }
}

(摘自《格拉德尔手册》第50章))

我所拥有的应该有效,但我很困惑为什么它没有。

gradle --version输出:

Groovy:       1.8.6
Ant:          Apache Ant(TM) version 1.9.3 compiled on December 23 2013
Ivy:          2.2.0
JVM:          1.8.0_05 (Oracle Corporation 25.5-b02)
OS:           Windows 7 6.1 amd64

答案 1

请注意,Java 插件引入的 、、 和配置自 Gradle 4.102018 年 8 月 27 日)以来已被弃用,并最终在 Gradle 7.0(2021 年 4 月 9 日)中删除。compileruntimetestCompiletestRuntime

上述配置应分别替换为 、 、 和 。implementationruntimeOnlytestImplementationtestRuntimeOnly


答案 2

确保您正在编辑正确的文件。我在编辑时收到此错误,而不是.build.gradleandroid/build.gradleandroid/app/build.gradle


推荐