Ich möchte Ihnen eine klare Vorstellung geben. Aus diesem Grund füge ich build.grade Snapshot-Code für ein besseres Verständnis bei.
buildscript Abhängigkeiten:
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'
}
}
Root-Ebene/Kern Abhängigkeiten:
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'
}
So Zuerst möchte ich in Wort klarstellen, dass
i) Buildscript-Abhängigkeiten JAR-Datei wird heruntergeladen von Buildscript-Repositories. [Projekt externe Abhängigkeit]
ii) Stammebene Abhängigkeiten JAR-Datei wird von Root Level-Repositories heruntergeladen werden. [Für Projektabhängigkeit]
Hier
Der „buildscript“ Block nur steuert Abhängigkeiten für die buildscript Prozess selbst, nicht für den Anwendungscode. Als verschiedene Gradle Plugins wie gradle-cobertura-plugin
, gradle-lint-plugin
werden von Buildscript Repos gefunden. Diese Plugins würden nicht als Abhängigkeiten für den Anwendungscode referenziert.
Aber für die Projektkompilierung und den Testlauf werden JAR-Dateien wie groovy all jar, junit and testng jar
aus Stamm-Repositories gefunden.
Und eine andere Sache, maven { url("https://plugins.gradle.org/m2/") }
Teil kann in beiden Blöcken verwendet werden. Weil sie für verschiedene Abhängigkeiten verwendet werden.
Ressourcenlink:Difference between dependencies within buildscript closure and core
Wenn ich Maven zentrale müssen beide für meine buildscript und mein Projekt, mache ich es zweimal erklären müssen? –
Ja, Sie müssen es dann zweimal angeben. –
Als Beispiel kann das Spring-PropDep-Plugin zum Buildskript hinzugefügt werden, um zusätzlich zu den üblichen "compile" - und "testCompile" -Schlüsselwörtern "bereitgestellte" und "optionale" Schlüsselwörter für Abhängigkeiten zu aktivieren. Hinweis: Das War-Plugin bietet bereits das Schlüsselwort "bereitgestellt" an. Sie benötigen lediglich propdeps für jar-Projekte, die in einem Krieg eingesetzt werden. – Powerlord