web-dev-qa-db-fra.com

Impossible de trouver la méthode compile () pour les arguments Gradle

J'ai cherché cette solution pendant trop longtemps maintenant, et je ne suis pas sûr d'avoir manqué quelque chose, mais mon script n'a pas été mal typé, mais mon script Gradle ne compilera pas. J'émigre à Gradle et je suis très nouveau avec cela. Je suis très habitué à utiliser Maven pour la gestion de la dépendance, mais Gradle me semble préférable pour le moment. En exécutant cet extrait de code:

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'])
}

REMARQUE: les plugins Java, Maven, Nexus, Shadow et Rebel sont appliqués.

Lorsque j'exécute ma tâche Gradle, je rencontre cette erreur: 

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

Si je supprime la dépendance "MattLib" de mon projet et le réinsère en tant que

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

Le script se termine, mais j'ai des problèmes de dépendance. Je lis ici:

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

(Extrait du chapitre 50 du manuel Gradle, http://www.gradle.org/docs/current/userguide/dependency_management.html )

que ce que j'ai doit fonctionner, mais je ne comprends pas pourquoi cela ne fonctionne pas.

gradé --version sortie:

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

Des pensées?

75
Ichbinjoe

Il doit s'agir de exclude module: 'net.milkbowl:vault:1.2.27' (add module:), comme expliqué dans la documentation de DependencyHandler, accessible depuis http://www.gradle.org/docs/current/javadoc/org/gradle/api/Project.html#dependencies(groovy.lang. Fermeture) parce que la méthode ModuleDependency.exclude(Java.util.Map) est utilisée.

6
Radim

Assurez-vous d’éditer le fichier build.gradle correct. J'ai reçu cette erreur en éditant Android/build.gradle plutôt que Android/app/build.gradle.

148
RussellStewart

compile est une configuration généralement introduite par un plugin (très probablement le plugin Java). Consultez le guide utilisateur de gradle pour plus de détails sur les configurations. Pour le moment, ajouter le plug-in Java au-dessus de votre script de construction devrait faire l'affaire:

apply plugin:'Java'
80
Rene Groeschke

Dans mon cas, toutes les déclarations compile se sont en quelque sorte rangées sur une seule ligne. en les séparant en lignes individuelles a résolu le problème.

8
Rohit Mandiwal

Espoir ci-dessous les étapes aideront

Ajoutez la dépendance à votre niveau de projet build.gradle:

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

Ajoutez le plugin à votre app-level build.gradle:

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

niveau de l'application build.gradle:

dependencies {
        compile 'com.google.Android.gms:play-services-auth:9.8.0'
}
6
Priyanshu Singh

Mauvais fichier de classement. Le bon est build.gradle dans votre dossier 'app'.

0
letanthang

Dans mon cas, j'ai dû supprimer certains fichiers créés par Gradle à un moment de mon étude pour que les choses fonctionnent. Donc, nettoyer après avoir tout gâché, puis tout s'est bien passé ...

Si vous rencontrez ce problème dans un projet git, exécutez git status et supprimez les fichiers non envisagés. (Pour moi, elasticsearch avait un problème avec plugins/analysis-icu).

Gradle Version: 5.1.1

0
dr0i