repository local - Gradle dépendances de buildscript





dependencies maven (4)


Je veux vous donner une conception claire. Pour cette raison, je joins un code instantané build.grade pour une meilleure compréhension.

dépendances de 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'
    }
}

les dépendances de niveau racine / noyau:

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

Donc, d'abord je veux clarifier en un seul mot que

i) les fichiers jar de dépendances buildscript seront téléchargés depuis les dépôts buildscript. [Dépendance externe du projet]

ii) le fichier jar des dépendances au niveau de la racine sera téléchargé à partir des dépôts de niveau racine. [Pour la dépendance du projet]

Ici,

Le bloc "buildscript" contrôle uniquement les dépendances pour le processus buildscript lui-même, pas pour le code de l'application. Comme divers plugin gradle comme gradle-cobertura-plugin , gradle-lint-plugin sont trouvés à partir des repos buildscript. Ces plugins ne seraient pas référencés en tant que dépendances pour le code de l'application.

Mais pour la compilation de projet et le test des fichiers jar en cours d'exécution comme groovy all jar, junit and testng jar seront trouvés à partir des dépôts de niveau racine.

Et une autre chose , maven { url("https://plugins.gradle.org/m2/") } partie peut être utilisé dans les deux blocs. Parce qu'ils sont utilisés pour différentes dépendances.

Liaison de ressources: Différence entre les dépendances dans la clôture et le noyau de buildscript

Quelle est la différence entre déclarer des dépôts dans la section buildScript de la construction gradle ou dans le niveau racine de la construction.

Option 1:

build.gradle :

buildScript {
    repositories {
        mavenCentral();
    }
}

ou

build.gradle :

repositories {
    mavenCentral();
}



Les dépôts dans le bloc buildScript sont utilisés pour récupérer les dépendances de vos dépendances buildScript. Ce sont les dépendances qui sont placées sur le classpath de votre build et auxquelles vous pouvez vous référer depuis votre fichier de construction. Par exemple, des plugins supplémentaires qui existent sur Internet.

Les dépôts au niveau racine sont utilisés pour récupérer les dépendances dont dépend votre projet. Donc toutes les dépendances dont vous avez besoin pour compiler votre projet.




Le script de construction (ie build.gradle) peut avoir des dépendances pour l'exécution du script de construction lui-même. Vous devez inclure ces dépendances dans le bloc buildScript. Le chapitre 4 de Gradle Beyond the Basics le décrit en détail.




La section de configuration " buildscript " est pour gradle lui-même (c.-à-d. Changements dans la façon dont gradle est capable d'effectuer la construction). Donc, cette section inclura généralement le plugin Android Gradle.

La section " allprojects " est pour les modules construits par Gradle.

Souvent, la section du référentiel est la même pour les deux, puisque les deux auront leurs dépendances de jcenter habituellement (ou peut-être maven central). Mais la section "dépendances" sera différente.

Habituellement, la section "dependencies" de "allprojects" est vide car les dépendances pour chaque module sont uniques et seront dans le fichier "build.gradle" de chacun des modules. Cependant, si tous les modules partageaient les mêmes dépendances, ils pourraient être listés ici.





build repository gradle