Sie können allgemeine Abhängigkeiten in einem übergeordneten Skript deklarieren:
ext.libraries = [ // Groovy map literal
spring_core: "org.springframework:spring-core:3.1",
junit: "junit:junit:4.10"
]
In einem untergeordneten Skript können Sie dann die Abhängigkeitsdeklarationen wie folgt verwenden:
dependencies {
compile libraries.spring_core
testCompile libraries.junit
}
Um Abhängigkeitsdeklarationen für erweiterte Konfigurationsoptionen freizugeben, können Sie Folgendes verwenden DependencyHandler.create
:
libraries = [
spring_core: dependencies.create("org.springframework:spring-core:3.1") {
exclude module: "commons-logging"
force = true
}
]
Mehrere Abhängigkeiten können unter demselben Namen gemeinsam genutzt werden:
libraries = [
spring: [ // Groovy list literal
"org.springframework:spring-core:3.1",
"org.springframework:spring-jdbc:3.1"
]
]
dependencies { compile libraries.spring }
fügt dann beide Abhängigkeiten gleichzeitig hinzu.
Die einzige Information, die Sie auf diese Weise nicht teilen können, ist die Konfiguration ( Umfang in Maven-Begriffen), der eine Abhängigkeit zugewiesen werden soll. Aus meiner Erfahrung ist es jedoch besser, dies explizit zu erwähnen.
Peter Niederwieser
quelle
dependencies.gradle
Skript, in dem ich alle meine Abhängigkeiten als Eigenschaften definiere, zext.GROOVY = 'org.codehaus.groovy:groovy-all:2.1.6'
. In das Root-Projekt schließebuild.gradle
ich einallprojects { apply from: "$rootDir/dependencies.gradle" }
. Dann werden alle Abhängigkeiten in einer Datei definiert, anstatt sie zu verteilen, und in den Abhängigkeitskonfigurationen werden "einfach zu lesende" Konstanten verwendet.allprojects
da zusätzliche Eigenschaften auf Projektebene für Teilprojekte sichtbar sind.Es ist eine späte Antwort, aber vielleicht möchten Sie auch einen Blick darauf werfen: http://plugins.gradle.org/plugin/io.spring.dependency-management Es bietet die Möglichkeit, einen Maven 'bom' zu importieren und die Definitionen wiederzuverwenden definiert in der 'bom'. Es ist sicherlich eine gute Hilfe bei der schrittweisen Migration von Maven zu Gradle! Genieße es jetzt.
quelle
Ab Gradle 4.6 werden in der Dokumentation Abhängigkeitsbeschränkungen vorgeschlagen, um dies zu erreichen. Von https://docs.gradle.org/current/userguide/declaring_dependencies.html#declaring_a_dependency_without_version :
In Ihrer übergeordneten
build.gradle
Datei:Umschließen des Abhängigkeitsblocks mit einer Überprüfung des Java-Plugins (...
whenPluginAdded {
) ist nicht unbedingt erforderlich, es wird jedoch das Hinzufügen eines Nicht-Java-Projekts zum selben Build behandelt.Dann können Sie in einem Child Gradle-Projekt einfach die Version weglassen:
Untergeordnete Builds können weiterhin eine höhere Version angeben. Wenn eine niedrigere Version angegeben wird, wird diese automatisch auf die in der Einschränkung angegebene Version aktualisiert.
quelle
allprojects
ist auch in Ordnung.io.spring.gradle:dependency-management-plugin
Das Plugin hat Probleme mit der neuen Gradle 3.x-Serie, ist jedoch für die 2.x-Serie stabil. Als Referenz siehe Fehlerbericht Drop-Unterstützung für Gradle 3 # 115Im Falle von Spring ( Hauptförderer der Stücklistenverwendung ) können Sie mit Folgendem enden:
Beachten Sie,
io.spring.platform:platform-bom
dassorg.springframework.boot:spring-boot-starter-parent
als übergeordnetes Element mit Spring Boot kompatibel istSie können die tatsächliche Abhängigkeitsauflösung überprüfen über:
oder mit Aufgabe:
Lesen Sie den offiziellen Soring-Blogbeitrag Besseres Abhängigkeitsmanagement für Gradle , um den Grund für die Einführung zu verstehen
io.spring.gradle:dependency-management-plugin
.quelle
In diesem Blogbeitrag wird vorgeschlagen, Abhängigkeiten und Gruppen als Konfigurationen zu verwalten: https://www.javacodegeeks.com/2016/05/manage-dependencies-gradle-multi-project-build.html
Ich habe es nicht selbst versucht, aber es sieht interessant aus.
Root-Projekt build.gradle
Unterprojekt build.gradle
quelle
Sie können zentralisieren eine Abhängigkeit mithilfe des folgenden Codes :
Im
gradle.properties
In jedem Modul hinzufügen zu
build.gradle
:quelle
Um Ihre Gradle-Datei sauber zu halten, können wir Abhängigkeiten in einem Array gruppieren und später implementieren.
Der endgültige Code sieht also folgendermaßen aus:
quelle