Gradle.properties ve settings.gradle ne zaman kullanılır?


94

Bir gradle yapısında üç dosya vardır

  • build.gradle yapı yapılandırma betiklerini tanımlayan
  • gradle.properties
  • settings.gradle

Sorular

  • settings.gradle& Arasındaki farklar nelerdir gradle.properties?
  • Bir ayarlar konulmalıdır zaman settings.gradlevs. gradle.properties?

Yanıtlar:


87

settings.gradle

settings.gradleDosya gibi, bir Groovy script build.gradledosyası. settings.gradleHer derlemede yalnızca bir betik çalıştırılır ( build.gradleçoklu proje derlemelerinde birden çok betik ile karşılaştırıldığında ). settings.gradleKomut herhangi önce çalıştırılacaktır build.gradleyazısı ve bile önce Projectörneği oluşturulur. Bu nedenle, bir Settingsnesneye karşı değerlendirilir . Bu Settingsnesne ile , yapınıza alt projeler ekleyebilir, parametreleri komut satırından ( StartParameter) değiştirebilir ve Gradleyaşam döngüsü işleyicileri kaydetmek için nesneye erişebilirsiniz . Sonuç olarak, settings.gradleayarlarınız derlemeyle ilgiliyse ve olası alt projeler dahil edilmeden önce mutlaka projeyle ilgili veya mantık gerektirmiyorsa kullanın .

gradle.properties

gradle.propertiesDosya basit bir Java olduğunu Propertiessadece otomatik kapsamına dahil edilerek özel bir rol kazandığı bu dosya Project(olarak 'proje özelliklerini' sözde) nesne. Bu, yalnızca dize değerlerine izin veren basit bir anahtar-değer deposu (bu nedenle listeleri veya dizileri kendiniz bölmeniz gerekir). gradle.propertiesDosyaları şu konumlara koyabilirsiniz :

  • doğrudan proje dizininde (proje ile ilgili değerler için)
  • kullanıcı ana .gradledizininde (kullanıcı veya çevreyle ilgili değerler için)

65

Çok modüllü bir projenin bir ana modülü ve birçok alt modülü vardır. Şu düzene sahiptir:

(root)
  +- settings.gradle       
  +- build.gradle          # optional (commonly present)
  +- gradle.properties     # optional
  +-- buildSrc/            # optional
  |     +- build.gradle    
  |     +-- src/...
  +-- my-gradle-stuff/     # optional
  |     +- utils.gradle    # optional
  +-- sub-a/
  |     +- build.gradle
  |     +- src/
  +-- sub-b/
        +- build.gradle
        +- src/

alt modüller ayrıca alt klasörlerde daha derine yerleştirilebilir, ancak settings.gradle'daki kodu değiştirmeden, adlarında bu tür klasörlerin adı bulunur.

settings.gradle

Settings.gradle'ın ana rolü, dahil edilen tüm alt modülleri tanımlamak ve bir modül ağacının dizin kökünü işaretlemektir, böylece settings.gradleçok modüllü bir projede yalnızca bir dosyaya sahip olabilirsiniz .

rootProject.name = 'project-x'

include 'sub-a', 'sub-b'

Ayarlar dosyası da harika yazılır ve alt modül araması özelleştirilebilir.

build.gradle

Modül başına böyle bir dosya vardır, bu modül için yapı mantığını içerir.

Gelen build.gradlebir dosyaya ana modül , kullanabileceğiniz allprojects {}veya subprojects {}diğer tüm modüllerin ayarlarını tanımlamak için.

Alt build.gradlemodüller dosyasında, compile project(':sub-a')bir alt modülü diğerine bağımlı hale getirmek için kullanabilirsiniz .

gradle.properties

Bu isteğe bağlıdır, ana amacı, gradle'ı çalıştırmak için kullanılacak başlatma seçenekleri sağlamaktır, örn.

org.gradle.jvmargs=-Xmx=... -Dfile.encoding=UTF-8 ...
org.gradle.configureondemand=true

Bu değerler bir dosya tarafından geçersiz kılınabilir USER_HOME/.gradle/gradle.propertiesve gradle komut satırı argümanları ile geçersiz kılınabilir . Ayrıca systemProp.önek olarak bu dosyada yapı için ortam değişkenlerini ayarlamak da mümkündür .

Bu dosyadaki herhangi bir özellik herhangi bir build.gradle içinde kullanılabilir, bu nedenle bazı projeler bağımlılık sürümünü veya yayın bilgilerini de koyar gradle.properties, ancak bu muhtemelen bu dosyanın kötüye kullanılmasıdır.

my-gradle-stuff / utils.gradle

(Herhangi bir klasör veya dosya adı mümkündür.) Tanımları yeniden kullanmak için ek özel not dosyaları tanımlayabilir ve bunları diğer not defteri dosyalarına dahil edebilirsiniz.

apply from: "$rootDir/gradle/utils.gradle"

bunu koymak için başka yerler olabilir src/gradleveyasrc/build/gradle

buildSrc / ...

Bu klasör özeldir, başlı başına ayrı bir gradle projesi gibidir. Başka bir şey yapmadan önce oluşturulmuştur ve diğer herhangi bir gradle dosyasında kullanılmak üzere işlev sağlayabilir. Teknik nedenlerden dolayı, bu klasöre başvurular için IDE desteği, ortak kodu birden çok build.gradledosyadan ayrı bir konuma çıkarmanın diğer yollarından çok daha iyi çalışır .

Bir eklenti yazmak ve dağıtmak yerine, karmaşık özel yapım mantığını java, groovy veya kotlin'de tanımlayabilirsiniz. Bu ayrıca, birim testlerine sahip olabileceğiniz için özel yapı kodunuzun birim testi için de kullanışlıdır. İçindeki kaynak klasör yapısı, buildSrcherhangi bir java / groovy / kotlin projesi gibi uyarlanabilir.

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.