Gradle buildscript bağımlılıkları


176

buildScriptGradle derlemesi bölümünde veya derlemenin kök düzeyinde depo bildirme arasındaki fark nedir ?

Seçenek 1:

build.gradle :

buildScript {
    repositories {
        mavenCentral();
    }
}

veya

build.gradle :

repositories {
    mavenCentral();
}

Yanıtlar:


165

BuildScript bloğundaki depolar, buildScript bağımlılıklarınızın bağımlılıklarını almak için kullanılır. Bunlar derlemenizin sınıfyoluna konulan ve derleme dosyanızdan başvurabileceğiniz bağımlılıklardır. Örneğin, internette bulunan ek eklentiler.

Kök düzeyindeki depolar, projenizin bağlı olduğu bağımlılıkları almak için kullanılır. Yani projenizi derlemek için ihtiyacınız olan tüm bağımlılıklar.


19
Hem benim buildscript'im hem de projem için maven merkezi gerekiyorsa, bunu iki kez bildirmem gerekir mi?
Marcin Koziński

18
Evet, gerçekten iki kez belirtmeniz gerekir.
Hiery Nomus

Bunun bir örneği olarak, Spring propdeps eklentisi, olağan "derleme" ve "testCompile" anahtar kelimelerine ek olarak bağımlılıklar için "sağlanan" ve "isteğe bağlı" anahtar kelimeleri etkinleştirmek üzere buildscript'e eklenebilir. Not: Savaş eklentisi zaten "sağlanan" anahtar sözcüğünü sunuyor, sadece bir savaşta konuşlandırılacak jar projeleri için propdeps'e ihtiyacınız var.
Powerlord

14

Size net bir anlayış vermek istiyorum. Bu nedenle, daha iyi anlamak için build.grade anlık görüntü kodunu ekliyorum .

buildscript bağımlılıkları:

buildscript {
    repositories {
        maven { url("https://plugins.gradle.org/m2/") }
    }

    dependencies {
        classpath 'net.saliman:gradle-cobertura-plugin:2.3.2'
        classpath 'com.netflix.nebula:gradle-lint-plugin:latest.release'
    }
}

kök seviyesi / çekirdek bağımlılıklar:

repositories{
    mavenLocal()
    maven { url("https://plugins.gradle.org/m2/") }
    maven { url "https://repo.spring.io/snapshot" }
}

dependencies {
        //Groovy
        compile group: 'org.codehaus.groovy', name: 'groovy-all', version: '2.3.10'

        //Spock Test
        compile group: 'org.spockframework', name: 'spock-core', version: '1.0-groovy-2.3'

        //Test
        testCompile group: 'junit', name: 'junit', version: '4.10'
        testCompile group: 'org.testng', name: 'testng', version: '6.8.5'
}

İlk olarak, tek kelimeyle

i) buildscript bağımlılıkları jar dosyası buildscript depolarından indirilecektir. [Proje dış bağımlılığı]

ii) Kök seviyesi bağımlılıkları jar dosyası kök seviyesi depolarından indirilecektir. [Proje bağımlılığı için]

Buraya,

“Buildscript” bloğu, uygulama kodu için değil, yalnızca buildscript işlemi için bağımlılıkları kontrol eder. Çeşitli gradle eklentisi gibi gibi gradle-cobertura-plugin, gradle-lint-pluginbuildscript repo dan bulunur. Bu eklentilere uygulama kodu için bağımlılık olarak referans verilmez.

Ancak proje derleme ve test için çalışan jar dosyaları gibi groovy all jar, junit and testng jarkök düzeyinde depolardan bulunabilir.

Ve başka bir şey , maven { url("https://plugins.gradle.org/m2/") }bölüm her iki blokta da kullanılabilir. Çünkü farklı bağımlılıklar için kullanılıyorlar.

Kaynak Bağlantısı: buildscript kapatılması ve çekirdek içindeki bağımlılıklar arasındaki fark


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.