Gradle - Bağımlılık Yönetimi

Gradle build script, proje oluşturmak için bir süreci tanımlar; her proje bazı bağımlılıklar ve bazı yayınlar içerir. Bağımlılıklar, diğer projelerden gerekli JAR dosyası ve sınıf yolunda JDBC JAR veya Eh-cache JAR gibi harici JAR'lar gibi projenizi oluşturmayı destekleyen şeyler anlamına gelir. Yayınlar, projenin test sınıfı dosyaları ve savaş dosyaları gibi derleme dosyaları gibi sonuçları anlamına gelir.

Projelerin çoğu bağımsız değildir. Kaynak dosyaları derlemek ve test etmek için diğer projeler tarafından oluşturulmuş dosyalara ihtiyaçları vardır. Örneğin, projede Hazırda Bekletme özelliğini kullanmak için, sınıf yoluna bazı Hazırda Bekletme JAR'larını dahil etmeniz gerekir. Gradle, indirilmesi gereken bağımlılıkları tanımlamak için bazı özel komut dosyaları kullanır.

Gradle, sonuçları bir yerde oluşturmak ve yayınlamakla ilgilenir. Yayınlama, tanımladığınız göreve dayanır. Dosyaları yerel dizine kopyalamak veya uzak bir Maven veya lvy havuzuna yüklemek isteyebilir veya aynı çoklu proje yapısında başka bir projedeki dosyaları kullanabilirsiniz. Görevi yayınlama sürecine yayın diyebiliriz.

Bağımlılıklarınızı Bildirmek

Bağımlılık yapılandırması, bağımlılık kümesini tanımlamaktan başka bir şey değildir. Bu özelliği, web'den indirmek istediğiniz harici bağımlılıkları bildirmek için kullanabilirsiniz. Bu, aşağıdaki gibi farklı standartları tanımlar.

apply plugin: 'java'

repositories {
   mavenCentral()
}

dependencies {
   compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
   testCompile group: 'junit', name: 'junit', version: '4.+'
}

Bağımlılık Yapılandırmaları

Bağımlılık yapılandırması, bir dizi bağımlılığı tanımlamaktan başka bir şey değildir. Web'den indirmek istediğiniz harici bağımlılıkları bildirmek için bu özelliği kullanabilirsiniz. Bu, aşağıdaki farklı standart konfigürasyonları tanımlar.

  • Compile - Projenin üretim kaynağını derlemek için gerekli olan bağımlılıklar.

  • Runtime- Çalışma zamanında üretim sınıflarının gerektirdiği bağımlılıklar. Varsayılan olarak, derleme zamanı bağımlılıklarını da içerir.

  • Test Compile- Projenin test kaynağını derlemek için gereken bağımlılıklar. Varsayılan olarak, derlenmiş üretim sınıflarını ve derleme zamanı bağımlılıklarını içerir.

  • Test Runtime- Testleri çalıştırmak için gereken bağımlılıklar. Varsayılan olarak, çalışma zamanı ve test derleme bağımlılıklarını içerir.

Dış Bağımlılıklar

Dış bağımlılıklar, bağımlılık türlerinden biridir. Bu, mevcut yapının dışında oluşturulan ve Maven merkezi veya kurumsal bir Maven veya lvy deposu veya yerel dosya sistemi I dizini gibi bir tür havuzda depolanan bazı dosyalara bağımlılıktır.

Aşağıdaki kod parçacığı, harici bağımlılığı tanımlamak içindir. Bu kodu şurada kullanınbuild.gradle dosya.

dependencies {
   compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
}

Dış bağımlılık, dış bağımlılıkları bildiriyor ve kısayol formu "grup: ad: sürüm" gibi görünüyor.

Depolar

Dış bağımlılıklar eklerken. Gradle onları bir depoda arar. Depo, gruba, ada ve sürüme göre düzenlenmiş bir dosya koleksiyonudur. Varsayılan olarak, Gradle herhangi bir depo tanımlamaz. En az bir depoyu açıkça tanımlamamız gerekiyor. Aşağıdaki kod parçacığı, maven deposunun nasıl tanımlanacağını tanımlar. Bu kodu şurada kullanınbuild.gradle dosya.

repositories {
   mavenCentral()
}

Aşağıdaki kod uzak maven'i tanımlamaktır. Bu kodu şurada kullanınbuild.gradle dosya.

repositories {
   maven {
      url "http://repo.mycompany.com/maven2"
   }
}

Yapıları Yayınlama

Bağımlılık yapılandırmaları, dosyaları yayınlamak için de kullanılır. Yayınlanan bu dosyalara yapay nesneler denir. Genellikle, yapıları tanımlamak için eklentiler kullanırız. Ancak, Gradle'a eserleri nerede yayınlayacağını söylemeniz gerekir. Bunu, arşivleri yükleme görevine ekleyerek başarabilirsiniz. Maven deposunu yayınlamak için aşağıdaki sözdizimine bir göz atın. Yürütürken, Gradle proje gereksinimlerine göre bir Pom.xml oluşturacak ve yükleyecektir. Bu kodu şurada kullanınbuild.gradle dosya.

apply plugin: 'maven'

uploadArchives {
   repositories {
      mavenDeployer {
         repository(url: "file://localhost/tmp/myRepo/")
      }
   }
}