Vous pouvez déclarer des dépendances courantes dans un script parent:
ext.libraries = [ // Groovy map literal
spring_core: "org.springframework:spring-core:3.1",
junit: "junit:junit:4.10"
]
À partir d'un script enfant, vous pouvez ensuite utiliser les déclarations de dépendance comme ceci:
dependencies {
compile libraries.spring_core
testCompile libraries.junit
}
Pour partager des déclarations de dépendance avec des options de configuration avancées, vous pouvez utiliser DependencyHandler.create
:
libraries = [
spring_core: dependencies.create("org.springframework:spring-core:3.1") {
exclude module: "commons-logging"
force = true
}
]
Plusieurs dépendances peuvent être partagées sous le même nom:
libraries = [
spring: [ // Groovy list literal
"org.springframework:spring-core:3.1",
"org.springframework:spring-jdbc:3.1"
]
]
dependencies { compile libraries.spring }
ajoutera ensuite les deux dépendances à la fois.
La seule information que vous ne pouvez pas partager de cette manière est la configuration ( portée en termes Maven) à laquelle une dépendance doit être affectée. Cependant, d'après mon expérience, il vaut mieux être explicite à ce sujet de toute façon.
Peter Niederwieser
la source
dependencies.gradle
scénario où je toutes mes dépendances définir comme propriétés, par exemple:ext.GROOVY = 'org.codehaus.groovy:groovy-all:2.1.6'
. Dans le projet racinebuild.gradle
, j'inclusallprojects { apply from: "$rootDir/dependencies.gradle" }
. Ensuite, toutes les dépendances sont définies dans un fichier au lieu de les répartir, et plus de constantes «faciles à lire» sont utilisées dans les configurations de dépendances.allprojects
car les propriétés supplémentaires au niveau du projet sont visibles pour les sous-projets.C'est une réponse tardive, mais vous voudrez peut-être aussi jeter un œil à: http://plugins.gradle.org/plugin/io.spring.dependency-management Il offre la possibilité d'importer un maven 'bom' et de réutiliser les définitions défini dans le «bom». C'est certainement une aide précieuse lors de la migration progressive de maven à gradle! Profiter maintenant.
la source
Depuis Gradle 4.6, les contraintes de dépendance sont suggérées dans la documentation comme moyen d'y parvenir. Depuis https://docs.gradle.org/current/userguide/declaring_dependencies.html#declaring_a_dependency_without_version :
Dans votre
build.gradle
dossier parent :Enveloppant le bloc de dépendances avec une vérification du plugin Java (...
whenPluginAdded {
) n'est pas strictement nécessaire, mais cela gérera alors l'ajout d'un projet non Java à la même construction.Ensuite, dans un projet gradle enfant, vous pouvez simplement omettre la version:
Les versions enfants peuvent toujours choisir de spécifier une version supérieure. Si une version inférieure est spécifiée, elle est automatiquement mise à niveau vers la version de la contrainte.
la source
allprojects
est bien aussi.io.spring.gradle:dependency-management-plugin
Le plugin a des problèmes avec la nouvelle série Gradle 3.x mais stable pour la série 2.x. Pour référence, regardez le rapport de bogue Drop support pour Gradle 3 # 115En cas de Spring ( principal promoteur de l'utilisation de la nomenclature ), vous pouvez terminer par:
Notez que
io.spring.platform:platform-bom
haveorg.springframework.boot:spring-boot-starter-parent
comme parent donc il est compatible avec Spring BootVous pouvez vérifier la résolution réelle des dépendances via:
ou avec tâche:
Lire l'article du blog officiel de Soring Une meilleure gestion des dépendances pour Gradle afin de comprendre la raison de l'introduction
io.spring.gradle:dependency-management-plugin
.la source
Vous pouvez centraliser une dépendance en utilisant le code ci-dessous:
Dans
gradle.properties
Dans chaque module, ajoutez à
build.gradle
:la source
Cet article de blog suggère de gérer les dépendances et les groupes en tant que configurations: https://www.javacodegeeks.com/2016/05/manage-dependencies-gradle-multi-project-build.html
Je ne l'ai pas essayé moi-même, mais cela semble intéressant.
Projet racine build.gradle
Sous-projet build.gradle
la source
Pour garder votre fichier de gradation propre, nous pouvons regrouper les dépendances dans un tableau et les implémenter plus tard.
Le code final ressemblera donc à ceci:
la source