寻找这个解决方案现在太长时间了,我不确定是否我错过了它或只是键入错误的东西,但我的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'
  }
}

(选自Gradle手册第50章)

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

Gradle——版本输出:

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

当前回答

将依赖项添加到你的项目级build.gradle:

classpath 'com.google.gms:google-services:3.0.0'

将插件添加到你的应用级build.gradle:

apply plugin: 'com.google.gms.google-services'

app-level build.gradle:

dependencies {
        compile 'com.google.android.gms:play-services-auth:9.8.0'
}

其他回答

在我的例子中,我不得不删除一些文件,这些文件是由gradle在我的研究中创建的,以使它工作。所以,把事情搞砸了再收拾,然后一切顺利……

如果您在git项目中遇到此问题,请执行git status并删除未修订的文件。(对我来说,elasticsearch有一个插件/analysis-icu的问题)。

Gradle版本:5.1.1

在我的例子中,所有compile语句都以某种方式安排在一行中。将它们分开在单独的行中解决了这个问题。

将依赖项添加到你的项目级build.gradle:

classpath 'com.google.gms:google-services:3.0.0'

将插件添加到你的应用级build.gradle:

apply plugin: 'com.google.gms.google-services'

app-level build.gradle:

dependencies {
        compile 'com.google.android.gms:play-services-auth:9.8.0'
}

请注意,Java插件引入的compile、runtime、testCompile和testRuntime配置自Gradle 4.10(2018年8月27日)以来就已弃用,并最终在Gradle 7.0(2021年4月9日)中被移除。

前面提到的配置应该分别被implementation、runtimeOnly、testimplemimplementation和testRuntimeOnly所取代。

它应该是exclude module: 'net.milkbowl:vault:1.2.27'(add module:),正如文档中从这里链接的DependencyHandler所解释的那样,因为使用了ModuleDependency.exclude(java.util.Map)方法。