Doğru anlarsam, Project.dependencieskomut dosyası bloğunu komut dosyası bloğuyla karıştırıyorsunuz Project.buildscript.dependencies(tıpkı bu soruya ulaştığımda yaptığım gibi).
Buna bulduğum şeyle cevap vermeye çalışacağım.
Bence Project.dependencieskomut dosyası bloğuna zaten aşina olmanız gerekir . Bu blokta, kaynak kodumuzun gerektirdiği bağımlılıkları bildiriyoruz. Proje için ihtiyaç duyduğumuz bir bağımlılığı beyan etmenin birkaç yolu vardır. Gradle Tutorial: Dependency Types bölümüne bakınız . Sadece bu problemle en alakalı kısımdan bahsedeceğim:
compile 'org.hibernate:hibernate-core:5.0.5.Final'bir modül bağımlılık bildirimidir. Derleme yapılandırması (şimdi uygulama yapılandırması tarafından kaldırılmıştır) için yalnızca bir anahtar sözcüktür Implementation only dependencies.Bu, hangi bağımlılık türünü açıklayan bir anahtar sözcük değildir (burada türe göre öğreticide tanımlanan üç türü izliyorum, yani modül, dosya ve proje.)
In Gradle Öğreticisi: Yapı Mantık Organize diyor:
Derleme komut dosyanızın harici kitaplıklar kullanması gerekiyorsa, bunları derleme komut dosyasının kendisindeki komut dosyasının sınıf yoluna ekleyebilirsiniz. Bunu buildscript () yöntemini kullanarak yaparsınız, derleme betiği sınıf yolunu bildiren bir kapanışa geçersiniz.
Bu, örneğin Java derleme sınıf yolunu bildirdiğiniz yolla aynıdır. Proje bağımlılıkları dışında, Bağımlılık Türleri'nde açıklanan bağımlılık türlerinden herhangi birini kullanabilirsiniz.
Derleme betiği sınıfyolunu bildirdikten sonra, sınıf yolundaki diğer sınıflarda olduğu gibi, oluşturma betiğinizdeki sınıfları kullanabilirsiniz.
Umarım işler şimdi senin için netleşiyordur.
İle , projenizdeki kaynak yerine derleme betiğinin kendisi tarafından kullanılan bir modül bağımlılığı olan yöntemi classpath "com.android.tools.build:gradle:${Versions.android_gradle_plugin}"ayarlıyoruz .classpathcom.android.tools.build:gradle:${Versions.android_gradle_plugin}
Öte yandan, compile 'org.hibernate:hibernate-core:5.0.5.Final'projeniz için gerekli olan bir modül bağımlılığını derleme yapılandırmasıyla bildiriyoruz .
tl; dr: classpath, compileve implementationfarklı koşullarda bağımlılıkları karşı kullanılabilecek tüm anahtar kelimelerdir. İlki, derleme betiğine bir bağımlılık geçirmek istediğinizde kullanılır ve ikincisi, bildirmek isteyebileceğiniz yapılandırmalardan biridir .
classpathgeçerli bir bağımlılık kapsamı değil.