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?

Ichbinjoe
sumber
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.

Radim
sumber
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.

RussellStewart
sumber
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'
Rene Groeschke
sumber
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.

Rohit Mandiwal
sumber
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'
}
Priyanshu Singh
sumber
1
Apa hubungannya ini dengan pertanyaan?
aarnaut
0

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

letanthang
sumber
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

dr0i
sumber
0

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

longi
sumber