Zależności Gradle buildscript

Jaka jest różnica pomiędzy deklarowaniem repozytoriów w sekcji buildScript kompilacji gradle lub na poziomie głównym kompilacji.

Wariant 1:

Buduj.gradle :

buildScript {
    repositories {
        mavenCentral();
    }
}

Lub

Buduj.gradle :

repositories {
    mavenCentral();
}
Author: Regexident, 2012-12-18

3 answers

Repozytoria w bloku buildScript sÄ ... uĺźywane do pobierania zaleĹźnoĹ "ci od zaleĹźnoĹ" ci buildScript. Są to zależności, które są umieszczane na ścieżce klasowej kompilacji i do których można się odwoływać z pliku kompilacji. Na przykład dodatkowe wtyczki, które istnieją w Internecie.

Repozytoria na poziomie głównym są używane do pobierania zależności, od których zależy twój projekt. Więc wszystkie zależności potrzebne do skompilowania projektu.

 129
Author: Hiery Nomus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-18 12:15:42

Skrypt build (czyli build.gradle) mogą mieć pewne zależności do wykonania samego skryptu kompilacji. Te zależności można zamknąć w bloku buildScript. Rozdział 4 Gradle Beyond the Basics opisuje to szczegółowo.

 14
Author: user3240644,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-19 05:46:05

Chcę dać ci jasne pojęcie. Z tego powodu dołączam build.grade kod migawki dla lepszego zrozumienia.

Zależności Buildscript:

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'
    }
}

Poziom główny / podstawowe zależności:

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'
}

Więc najpierw chcę wyjaśnić jednym słowem, że

I) plik buildscript dependencies jar zostanie pobrany z repozytoria buildscript. [zależność zewnętrzna projektu]

Ii) poziom korzeniowy plik JAR zależności zostanie pobrany z katalogu głównego repozytoria poziomów.[Dla zależności od projektu]

Tutaj,

Blok "buildscript" kontroluje tylko zależności dla samego procesu buildscript, a nie dla kodu aplikacji. Jak różne pluginy gradle jak gradle-cobertura-plugin, gradle-lint-plugin znajdują się w repozytoriach buildscript. Wtyczki te nie byłyby określane jako zależności dla kodu aplikacji.

Ale dla kompilacji projektu i testowania uruchomionych plików jar jak groovy all jar, junit and testng jar będzie być znalezione z repozytoriów poziomu głównego.

I jeszcze jedno., maven { url("https://plugins.gradle.org/m2/") } porcja może być używana w obu blokach. Ponieważ są one używane dla różnych zależności.

Link do zasobów: różnica między zależnościami wewnątrz buildscript closure i core

 2
Author: SkyWalker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-29 19:02:57