引数Gradleのメソッドcompile()が見つかりませんでした


95

この解決策を探しすぎたのはあまりに長い間でしたが、それを見逃したのか、タイプミスしたのかはわかりませんが、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マニュアルのhttp://www.gradle.org/docs/current/userguide/dependency_management.htmlから

私が持っているものは機能するはずですが、なぜ機能しないのか混乱しています。

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

何かご意見は?


これを理解したことはありますか?まったく同じ問題があります。ディスカッションフォーラムの誰かがコンパイルブロック内にexcludeを置くことを推奨しましたが、そうしようとするたびに、この正確なエラーが発生します。
Trejkaz

回答:


7

メソッドであるので、http://www.gradle.org/docs/current/javadoc/org/gradle/api/Project.html#dependencies(groovy.lang.Closure)からリンクされているドキュメントで説明されているようにexclude module: 'net.milkbowl:vault:1.2.27'(追加module:)である必要があります。中古。DependencyHandlerModuleDependency.exclude(java.util.Map)


これまでずっと振り返ると、これは私が抱えていた最も可能性の高い問題です。私はそれ以来明らかに進んでいますが、この質問がまだ開かれているという通知を受け取った後、私はこれが「正解」であることが最も近いように見えるので、これを「正解」として示すのが適切だと思います。
Ichbinjoe 2018年

167

正しいbuild.gradleファイルを編集していることを確認してください。android/build.gradleではなく編集時にこのエラーを受け取りましたandroid/app/build.gradle


7
私もそれを間違った場所に持っていました。助けてくれてありがとう!
igorrmotta 2016

3
間違った場所とはどういう意味ですか?
guru_001 2016年

@ guru_001 android / app / build.gradleを編集することになっています
Sreekanth Karumanaghat '25

1
優れた。Gradleを初めて使用する私や他のユーザーに非常に役立ちます。
CowZow

1
なぜF ..彼らは同じ名前を付けたのですか?
Developerium、

103

compileconfiguration通常プラグイン(ほとんどの場合、Javaプラグイン)によって導入されるです。構成の詳細については、gradleのユーザーガイドを参照してください。今のところ、ビルドスクリプトの上にJavaプラグインを追加すると、うまくいくはずです。

apply plugin:'java'

この定義の順序はビルドに影響を与えるようです。私の場合、私はjar()タグで問題に直面し、Reneのメモが問題の解決に役立ちました。
vsrikarunyan 2016

kotlinでの作業中、kotlinプラグインを適用しなければならなかったapply plugin: "kotlin"
prayagupd

私の構文糖はプラグイン{id 'java'}
granadaCoder

8

私の場合、すべてのcompileステートメントが何らかの形で1行に配置されています。個々の行でそれらを分離すると、問題が修正されました。


これは、Android Studioで私に起こり続けます!
ブレット

はい、モジュール設定ダイアログからgradleプロパティを変更すると、それが起こります
Ranjith Kumar

そうだね。くそーgradle.buildファイルジェネレーターは、いくつかの操作の後、依存関係ブロックの改行セパレーターを削除します。
Markus Marvell

まあ、本当に?グーグルに来てなんてバグだ、目が覚めて実行ボタンを押すと、新しい行がすべて削除された!これは本当にくそ男..です
Pratik Jamariya

7

以下の手順が役立つことを願っています

プロジェクトレベルの build.gradleに依存関係を追加します。

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

プラグインをアプリレベルの build.gradleに追加します。

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

アプリレベルの build.gradle:

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

1
これは質問とどのような関係がありますか?
宇宙飛行士2017年

0

Gradleファイルが間違っています。正しいものは、「app」フォルダー内のbuild.gradleです。


0

私の場合、研究のある時点でgradleによって作成されたいくつかのファイルを削除して、物事を機能させる必要がありました。だから、台無しにしてからクリーンアップして、それはうまくいきました...

gitプロジェクトでこの問題が発生した場合はgit status、修正されていないファイルを削除してください。(私にとってelasticsearchは問題がありましたplugins/analysis-icu)。

Gradle Version :5.1.1


0

参考までに、「環境設定->ビルド、実行、デプロイ-> Gradle-> オフライン作業」オフライン作業を誤って有効にしたが、エラーメッセージが誤解を招く

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.