Gradle bağımsız değişkenleri için compile () yöntemi bulunamadı


95

Bu çözümü çok uzun zamandır aradım ve onu özlediğimden veya bir şeyi yanlış yazıp yazmadığımdan emin değilim, ancak Gradle betiğim derlenmeyecek. Gradle'a geçiyorum ve bu konuda çok yeniyim. Bağımlılık yönetimi için Maven'i kullanmaya çok alıştım, ancak Gradle şimdilik benim için en iyisi gibi görünüyor. Bu kod parçacığını çalıştırarak:

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

NOT: Java, maven, nexus, shadow ve rebel eklentileri uygulandı.

Gradle görevimi çalıştırdığımda şu hatayla karşılaşıyorum:

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

"MattLib" bağımlılığını projemden kaldırıp yeniden yerleştirirsem

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

Komut dosyası tamamlanıyor, ancak bağımlılık sorunlarım var. Burada okudum:

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

(Gradle El Kitabından Bölüm 50'den, http://www.gradle.org/docs/current/userguide/dependency_management.html )

İşe yaramalı, ama neden işe yaramadığını kafam karıştı.

gradle --version çıktısı:

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

Düşüncesi olan var mı?


Bunu hiç çözdün mü? Bende de aynı sorun var. Tartışma forumundaki biri bir derleme bloğunun içine dışlama koymayı tavsiye etti, ancak bunu ne zaman yapmaya çalışsam, tam olarak bu hatayı alıyorum.
Trejkaz

Yanıtlar:


7

Http://www.gradle.org/docs/current/javadoc/org/gradle/api/Project.html#dependencies(groovy.lang.Closure) bağlantısına ilişkin belgelerde açıklandığı gibi exclude module: 'net.milkbowl:vault:1.2.27'( eklenmelidir ) çünkü yöntem Kullanılmış.module:DependencyHandlerModuleDependency.exclude(java.util.Map)


Bunca zaman geriye dönüp baktığımda, yaşadığım en olası sorun buydu. O zamandan beri açık bir şekilde yoluma devam ettim, ancak bu sorunun hala açık olduğuna dair bildirimler aldıktan sonra, en yakın gibi göründüğü için bunu 'doğru' cevap olarak belirtmenin tek uygun olduğunu düşünüyorum.
Ichbinjoe

169

Doğru build.gradledosyayı düzenlediğinizden emin olun . Düzenlerken bu hata aldı android/build.gradleziyade android/app/build.gradle.


7
Ben de yanlış yerdeydim. Bana yardım ettiğin için teşekkürler!
igorrmotta

3
Yanlış yerden ne demek istiyorsun? Hangi gradle dosyasını düzenlemem gerekiyor?
guru_001

@ guru_001 android / app / build.gradle'ı düzenlemeniz gerekiyor
Sreekanth Karumanaghat

1
mükemmel. bana ve mezun olmaya yeni başlayanlar için çok faydalı.
CowZow

1
Neden F .. onu aynı isimle adlandırdı?
Developerium

107

compileBir olan configuration, genellikle bir eklenti (büyük olasılıkla java eklentisi) tarafından tanıtılan olduğu yapılandırmaları hakkında ayrıntılı bilgi için gradle Userguide göz at. Şimdilik, java eklentisini derleme betiğinizin üzerine eklemek hile yapmalı:

apply plugin:'java'

bu tanımın gittiği sıranın yapı üzerinde bir etkisi var gibi görünüyor; benim durumumda jar () etiketiyle ilgili sorunla karşılaştım ve Rene'nin notu sorunu çözmeme yardımcı oldu.
vsrikarunyan

kotlin ile çalışırken kotlin eklentisi uygulamak zorunda kaldıapply plugin: "kotlin"
praagupd

Sözdizim
şeklim

8

Benim durumumda, tüm compileifadeler bir şekilde tek bir satırda düzenlenmiştir. bunları ayrı satırlarda ayırmak sorunu çözdü.


Bu, Android Studio'da bana olmaya devam ediyor!
Brett

evet, modül ayarları iletişim kutusundan gradle özelliklerini değiştirirsek, bu olur
Ranjith Kumar

Doğru. Damn gradle.build dosya oluşturucusu, bazı işlemlerden sonra bağımlılıklar bloğundaki satırsonu ayırıcılarını kaldırır.
Markus Marvell

gerçekten? hadi google'a ne hata, uyandığımda ve çalıştır düğmesine bastığımda tüm yeni satırlarımı kaldırdı! bu gerçekten boktan bir adam ..
Pratik Jamariya

7

Umarım Aşağıdaki adımlar yardımcı olacaktır

Bağımlılığı proje düzeyinde build.gradle'a ekleyin:

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

Eklentiyi uygulama düzeyinde build.gradle'a ekleyin:

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

uygulama düzeyinde build.gradle:

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

1
Bunun soruyla ne alakası var?
aarnaut

0

Yanlış not dosyası. Doğru olanı 'app' klasörünüzdeki build.gradle'dır.


0

Benim durumumda, çalışmamın bir noktasında, işleri yürütmek için gradle tarafından oluşturulan bazı dosyaları kaldırmak zorunda kaldım. Yani, ortalığı karıştırdıktan sonra temizlemek ve sonra iyi gitti ...

Bu sorunu bir git projesinde git statusyaşadıysanız, gözden geçirilmemiş dosyaları yapın ve kaldırın. (Benim elasticsearchiçin bir sorunum vardı plugins/analysis-icu).

Gradle Version : 5.1.1


0

Sadece kayıt için: Yanlışlıkla etkin Çevrimdışı çalışmayı altında -> Yapı, Yürütme, Dağıtım -> Gradle -> işaretini Çevrim İş Tercihleri ama hata mesajı yanıltıcı

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.