Doğru anlarsam, Project.dependencies
komut 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.dependencies
komut 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 .classpath
com.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
, compile
ve implementation
farklı 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 .
classpath
geçerli bir bağımlılık kapsamı değil.