Tidak dapat menemukan metode compile () untuk argumen Gradle


95

Mencari-cari solusi ini terlalu lama sekarang, dan saya tidak yakin apakah saya melewatkannya atau hanya salah mengetik sesuatu, tetapi skrip Gradle saya tidak dapat dikompilasi. Saya bermigrasi ke Gradle, dan saya sangat baru dengannya. Saya sangat terbiasa menggunakan Maven untuk manajemen ketergantungan, tetapi Gradle tampaknya yang terbaik untuk saya saat ini. Dari menjalankan cuplikan kode ini:

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

CATATAN: Saya memiliki plugin java, maven, nexus, shadow, dan rebel yang diterapkan.

Ketika saya menjalankan tugas Gradle saya, saya mengalami kesalahan ini:

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

Jika saya menghapus ketergantungan "MattLib" dari proyek saya dan memasukkannya kembali sebagai

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

Skrip selesai, tetapi saya memiliki masalah ketergantungan. Saya membaca di sini:

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

(Dari Bab 50 Dari Gradle Manual, http://www.gradle.org/docs/current/userguide/dependency_management.html )

bahwa apa yang saya miliki HARUS berfungsi, tetapi saya bingung mengapa tidak.

gradle - keluaran versi:

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

Ada pemikiran?


Apakah Anda pernah memikirkan hal ini? Saya memiliki masalah yang sama persis. Seseorang di forum diskusi merekomendasikan untuk memasukkan exclude ke dalam blok kompilasi, tetapi setiap kali saya mencoba melakukannya, saya mendapatkan kesalahan persis ini.
Trejkaz

Jawaban:


7

Ini harus exclude module: 'net.milkbowl:vault:1.2.27'(tambahkan module:) seperti yang dijelaskan dalam dokumentasi untuk DependencyHandlerditautkan dari http://www.gradle.org/docs/current/javadoc/org/gradle/api/Project.html#dependencies(groovy.lang.Closure) karena ModuleDependency.exclude(java.util.Map)metode bekas.


Melihat ke belakang selama ini, ini adalah masalah yang paling mungkin saya alami. Sejak saat itu saya sudah jauh pindah, tetapi setelah mendapat pemberitahuan bahwa pertanyaan ini masih terbuka, saya pikir hanya tepat untuk menunjukkan ini sebagai jawaban yang 'benar', karena tampaknya yang paling dekat.
Ichbinjoe

167

Pastikan Anda mengedit build.gradlefile yang benar . Saya menerima kesalahan ini saat mengedit android/build.gradledaripada android/app/build.gradle.


7
Aku juga melakukannya di tempat yang salah. Terima kasih telah membantu saya!
igorrmotta

3
apa yang kamu maksud dengan tempat yang salah? file gradle mana yang seharusnya diedit?
guru_001

@ guru_001 Anda seharusnya mengedit android / app / build.gradle
Sreekanth Karumanaghat

1
luar biasa. sangat membantu saya dan orang lain yang baru lulus.
CowZow

1
Kenapa F .. mereka menamakannya sama ??
Developerium

105

compileadalah configurationyang biasanya diperkenalkan oleh sebuah plugin (kemungkinan besar adalah plugin java). Lihat panduan pengguna gradle untuk detail tentang konfigurasi. Untuk saat ini menambahkan plugin java di atas skrip build Anda harus melakukan triknya:

apply plugin:'java'

urutan definisi ini tampaknya berdampak pada build; dalam kasus saya, saya menghadapi masalah dengan tag jar () dan catatan Rene membantu saya menyelesaikan masalah tersebut.
vsrikarunyan

saat bekerja dengan kotlin, harus menerapkan plugin apply plugin: "kotlin"
kotlin

Gula sintaks saya adalah plugin {id 'java'}
granadaCoder

8

Dalam kasus saya, semua compilepernyataan entah bagaimana telah diatur dalam satu baris. memisahkan mereka dalam garis individu telah memperbaiki masalah.


Ini terus terjadi pada saya di Android Studio!
Brett

ya jika kita memodifikasi properti gradle dari dialog pengaturan modul itu terjadi
Ranjith Kumar

Benar. Damn gradle.build file generator menghapus pemisah baris baru di blok dependensi setelah beberapa manipulasi.
Markus Marvell

Oh benarkah? ayo di google apa bug, itu menghapus semua baris baru saya ketika saya bangun dan menekan tombol run! ini benar-benar orang yang brengsek ..
Pratik Jamariya

7

Semoga langkah-langkah di bawah ini akan membantu

Tambahkan dependensi ke build.gradle tingkat proyek Anda :

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

Tambahkan plugin ke build.gradle tingkat aplikasi Anda :

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

build.gradle tingkat aplikasi:

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

1
Apa hubungannya ini dengan pertanyaan?
aarnaut

0

File gradle salah. Yang benar adalah build.gradle di folder 'app' Anda.


0

Dalam kasus saya, saya harus menghapus beberapa file yang dibuat oleh gradle di beberapa titik dalam studi saya untuk membuat semuanya berfungsi. Jadi, membersihkan setelah mengacaukan dan kemudian berjalan dengan baik ...

Jika Anda mengalami masalah ini dalam proyek git, lakukan git statusdan hapus file yang tidak direvisi. (Bagi saya elasticsearchpunya masalah dengan plugins/analysis-icu).

Gradle Version : 5.1.1


0

Sekadar catatan: Saya tidak sengaja mengaktifkan pekerjaan Offline di bawah Preferensi -> Build, Execution, Deployment -> Gradle -> hapus centang Offline Work , tetapi pesan kesalahannya menyesatkan

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.