Un plug-in Gradle développé par le Spring Project. Cela permet à Gradle d'utiliser le même mécanisme que la nomenclature de Maven.
L'explication de BOM est [Si vous voulez utiliser BOM avec Gradle, il semble préférable d'utiliser le plugin de gestion des dépendances fourni par l'équipe Spring-Make something](http://create-something.hatenadiary.jp/entry/2015/05/5 08/063000) etc.
Faisant à l'origine partie du plug-in Spring Boot autour de Spring Boot 1.x, il a été créé en tant que plug-in séparé lorsque Spring Boot est devenu 2.x. + Il peut donc être utilisé indépendamment de Spring Boot (mais je pense que c'est en fait le plus utile lors de l'utilisation de Spring Boot).
Gradle
5.4.1
Dependency Management Plugin
1.0.8.RELEASE
Hello World
build.gradle
plugins {
id "java"
id "io.spring.dependency-management" version "1.0.8.RELEASE"
}
repositories {
mavenCentral()
}
dependencyManagement {
dependencies {
dependency "org.apache.commons:commons-lang3:3.9"
}
}
dependencies {
implementation "org.apache.commons:commons-lang3"
}
sourceCompatibility = 11
targetCompatibility = 11
compileJava.options.encoding = "UTF-8"
--plugins Voir https://plugins.gradle.org/plugin/io.spring.dependency-management pour savoir comment écrire sans utiliser DSL.
Résultat d'exécution
> gradle dependencies --configuration runtimeClasspath
...
runtimeClasspath - Runtime classpath of source set 'main'.
\--- org.apache.commons:commons-lang3 -> 3.9
La description
build.gradle
dependencyManagement {
dependencies {
dependency "org.apache.commons:commons-lang3:3.9"
}
}
--Déclarer les bibliothèques dépendantes jusqu'à la version avec les dépendances
de dependencyManagement
build.gradle
dependencies {
implementation "org.apache.commons:commons-lang3"
}
dependencyManagement
sera utilisée par défaut.build.gradle
...
dependencyManagement {
dependencies {
dependencySet(group: "org.apache.poi", version: "4.1.0") {
entry "poi"
entry "poi-ooxml"
}
}
}
dependencies {
implementation "org.apache.poi:poi"
implementation "org.apache.poi:poi-ooxml"
}
...
Résultat d'exécution
> gradle dependencies --configuration runtimeClasspath
...
runtimeClasspath - Runtime classpath of source set 'main'.
+--- org.apache.poi:poi -> 4.1.0
| +--- commons-codec:commons-codec:1.12
| +--- org.apache.commons:commons-collections4:4.3
| \--- org.apache.commons:commons-math3:3.6.1
\--- org.apache.poi:poi-ooxml -> 4.1.0
+--- org.apache.poi:poi:4.1.0 (*)
+--- org.apache.poi:poi-ooxml-schemas:4.1.0
| \--- org.apache.xmlbeans:xmlbeans:3.1.0
+--- org.apache.commons:commons-compress:1.18
\--- com.github.virtuald:curvesapi:1.06
La description
build.gradle
dependencyManagement {
dependencies {
dependencySet(group: "org.apache.poi", version: "4.1.0") {
entry "poi"
entry "poi-ooxml"
}
}
}
--dependencySet
vous permet de spécifier des versions de plusieurs artefacts dans le même groupe à la fois
et les artefacts sont
poi et
poi-ooxml`4.1.0
comme versionbuild.gradle
...
dependencyManagement {
dependencies {
dependency("org.apache.poi:poi:4.1.0") {
exclude "commons-codec:commons-codec"
}
}
}
dependencies {
implementation "org.apache.poi:poi"
}
...
Résultat d'exécution
> gradle dependencies --configuration runtimeClasspath
...
runtimeClasspath - Runtime classpath of source set 'main'.
\--- org.apache.poi:poi -> 4.1.0
+--- org.apache.commons:commons-collections4:4.3
\--- org.apache.commons:commons-math3:3.6.1
commons-codec
a disparu.La description
build.gradle
dependencyManagement {
dependencies {
dependency("org.apache.poi:poi:4.1.0") {
exclude "commons-codec:commons-codec"
}
}
}
build.gradle
...
dependencyManagement {
dependencies {
dependencySet(group: "org.apache.poi", version: "4.1.0") {
entry("poi") {
exclude "commons-codec:commons-codec"
}
entry "poi-ooxml"
}
}
}
dependencies {
implementation "org.apache.poi:poi"
implementation "org.apache.poi:poi-ooxml"
}
...
Résultat d'exécution
> gradle dependencies --configuration runtimeClasspath
...
runtimeClasspath - Runtime classpath of source set 'main'.
+--- org.apache.poi:poi -> 4.1.0
| +--- org.apache.commons:commons-collections4:4.3
| \--- org.apache.commons:commons-math3:3.6.1
\--- org.apache.poi:poi-ooxml -> 4.1.0
+--- org.apache.poi:poi:4.1.0 (*)
+--- org.apache.poi:poi-ooxml-schemas:4.1.0
| \--- org.apache.xmlbeans:xmlbeans:3.1.0
+--- org.apache.commons:commons-compress:1.18
\--- com.github.virtuald:curvesapi:1.06
build.gradle
...
dependencyManagement {
dependencies {
imports {
mavenBom "org.springframework.boot:spring-boot-dependencies:2.1.6.RELEASE"
}
}
}
dependencies {
implementation "org.apache.commons:commons-lang3"
}
...
Résultat d'exécution
> gradle dependencies --configuration runtimeClasspath
...
runtimeClasspath - Runtime classpath of source set 'main'.
\--- org.apache.commons:commons-lang3 -> 3.8.1
La description
build.gradle
dependencyManagement {
dependencies {
imports {
mavenBom "org.springframework.boot:spring-boot-dependencies:2.1.6.RELEASE"
}
}
}
mavenBom
dans ʻimports`commons-lang3
spécifiée dans la nomenclature de 2.1.6.RELEASE
est [3.8.1](https://github.com/spring-projects/spring-boot/blob/v2. 1.6.RELEASE / spring-boot-project / spring-boot-dependencies / pom.xml # L51), la version résolue est également 3.8.1
build.gradle
...
dependencyManagement {
dependencies {
imports {
mavenBom("org.springframework.boot:spring-boot-dependencies:2.1.6.RELEASE") {
bomProperty "commons-lang3.version", "3.9"
}
}
}
}
dependencies {
implementation "org.apache.commons:commons-lang3"
}
...
Résultat d'exécution
> gradle dependencies --configuration runtimeClasspath
...
runtimeClasspath - Runtime classpath of source set 'main'.
\--- org.apache.commons:commons-lang3 -> 3.9
La description
build.gradle
mavenBom("org.springframework.boot:spring-boot-dependencies:2.1.6.RELEASE") {
bomProperty "commons-lang3.version", "3.9"
}
commons-lang3
est [déclarée] avec la propriété commons-lang3.version
(https://github.com/spring-projects/spring-boot/blob/ v2.1.6.RELEASE / spring-boot-project / spring-boot-dependencies / pom.xml # L51)
--Cependant, cette méthode ne doit être utilisée que si ** le plug-in Maven ne produit pas pom.xml **
--Parce que les informations indiquant que la version est écrasée ne sont pas reflétées dans la sortie pom.xml
par cette méthode.Il existe également un moyen d'écrire en utilisant bomProperties (Map)
.
bomProperties(Map)Exemple spécifié par
dependencyManagement {
dependencies {
imports {
mavenBom("org.springframework.boot:spring-boot-dependencies:2.1.6.RELEASE") {
bomProperties([
"commons-lang3.version": "3.9",
"commons-pool2.version": "2.6.1"
])
}
}
}
}
Résultat d'exécution
> gradle dependencies --configuration runtimeClasspath
...
runtimeClasspath - Runtime classpath of source set 'main'.
+--- org.apache.commons:commons-lang3 -> 3.9
\--- org.apache.commons:commons-pool2 -> 2.6.1
Vous pouvez également le déclarer avec une propriété étendue.
Exemple spécifié dans les propriétés étendues
ext["commons-lang3.version"] = "3.8"
ext["commons-pool2.version"] = "2.6.0"
dependencyManagement {
dependencies {
imports {
mavenBom "org.springframework.boot:spring-boot-dependencies:2.1.6.RELEASE"
}
}
}
Résultat d'exécution
> gradle dependencies --configuration runtimeClasspath
...
runtimeClasspath - Runtime classpath of source set 'main'.
+--- org.apache.commons:commons-lang3 -> 3.8
\--- org.apache.commons:commons-pool2 -> 2.6.0
build.gradle
dependencyManagement {
dependencies {
imports {
mavenBom "org.springframework.boot:spring-boot-dependencies:2.1.6.RELEASE"
}
dependency "org.apache.commons:commons-lang3:3.9"
}
}
dependencies {
implementation "org.apache.commons:commons-lang3"
}
Résultat d'exécution
> gradle dependencies --configuration runtimeClasspath
...
runtimeClasspath - Runtime classpath of source set 'main'.
\--- org.apache.commons:commons-lang3 -> 3.9
La description
build.gradle
dependencyManagement {
dependencies {
imports {
mavenBom "org.springframework.boot:spring-boot-dependencies:2.1.6.RELEASE"
}
dependency "org.apache.commons:commons-lang3:3.9"
}
}
dependency
dependency
est prioritaire sur la version déclarée avec BOM.dépendance
au-dessus de ʻimports` donnera le même résultatpom.xml
par le plug-in Maven.Il peut également être remplacé en spécifiant la version normalement lors de la déclaration d'une dépendance.
Comment spécifier la version dans la déclaration de dépendance
dependencyManagement {
dependencies {
imports {
mavenBom "org.springframework.boot:spring-boot-dependencies:2.1.6.RELEASE"
}
dependency "org.apache.commons:commons-lang3:3.9"
dependency "org.apache.commons:commons-pool2:2.6.1"
}
}
dependencies {
implementation "org.apache.commons:commons-lang3" //Si vous ne spécifiez pas la version
implementation "org.apache.commons:commons-pool2:2.6.0" //Lorsque la version est spécifiée
}
Résultat d'exécution
> gradle dependencies --configuration runtimeClasspath
...
runtimeClasspath - Runtime classpath of source set 'main'.
+--- org.apache.commons:commons-lang3 -> 3.9
\--- org.apache.commons:commons-pool2:2.6.0
--Si vous spécifiez une version directement avec ʻimplementation, cette version est adoptée (la priorité est donnée à la
dépendance`).
Si vous voulez ignorer la version spécifiée directement dans la déclaration de dépendance, définissez l'option ʻoverriddenByDependencies sur
false`.
Ignorer si la version directe est spécifiée
dependencyManagement {
overriddenByDependencies = false
dependencies {
imports {
mavenBom "org.springframework.boot:spring-boot-dependencies:2.1.6.RELEASE"
}
dependency "org.apache.commons:commons-lang3:3.9"
dependency "org.apache.commons:commons-pool2:2.6.1"
}
}
dependencies {
implementation "org.apache.commons:commons-lang3"
implementation "org.apache.commons:commons-pool2:2.6.0"
}
Résultat d'exécution
> gradle dependencies --configuration runtimeClasspath
...
runtimeClasspath - Runtime classpath of source set 'main'.
+--- org.apache.commons:commons-lang3 -> 3.9
\--- org.apache.commons:commons-pool2:2.6.0 -> 2.6.1
build.gradle
dependencyManagement {
dependencies {
imports {
mavenBom "org.springframework.boot:spring-boot-dependencies:2.1.6.RELEASE"
}
}
}
task showBomProperty {
doFirst {
println "commons-lang3.version = ${dependencyManagement.importedProperties["commons-lang3.version"]}"
}
}
Résultat d'exécution
> gradle showBomProperty
...
commons-lang3.version = 3.8.1
La description
build.gradle
task showBomProperty {
doFirst {
println "commons-lang3.version = ${dependencyManagement.importedProperties['commons-lang3.version']}"
}
}
--Les propriétés de la nomenclature chargée peuvent être obtenues à partir de dependencyManagement.importedProperties
.
Exclusions
Tout d'abord, essayez de déclarer une dépendance sur commons-dbcp2
sans charger la nomenclature Spring Boot.
build.gradle
plugins {
id "java"
}
repositories {
mavenCentral()
}
dependencies {
implementation "org.apache.commons:commons-dbcp2:2.5.0"
}
...
Résultat d'exécution
> gradle dependencies --configuration runtimeClasspath
...
runtimeClasspath - Runtime classpath of source set 'main'.
\--- org.apache.commons:commons-dbcp2:2.5.0
+--- org.apache.commons:commons-pool2:2.6.0
\--- commons-logging:commons-logging:1.2
On peut voir qu'il contient une dépendance sur la journalisation des communs
.
Ensuite, chargez la nomenclature Spring Boot et essayez-la.
build.gradle
dependencyManagement {
dependencies {
imports {
mavenBom "org.springframework.boot:spring-boot-dependencies:2.1.6.RELEASE"
}
}
}
dependencies {
implementation "org.apache.commons:commons-dbcp2"
}
Résultat d'exécution
> gradle dependencies --configuration runtimeClasspath
...
runtimeClasspath - Runtime classpath of source set 'main'.
\--- org.apache.commons:commons-dbcp2 -> 2.5.0
\--- org.apache.commons:commons-pool2:2.6.0 -> 2.6.2
On peut voir que la dépendance vis-à-vis de la journalisation commune
a disparu.
Il s'agit de la nomenclature Spring Boot, [dépendance à la journalisation des communs spécifiée par exclusion](https://github.com/spring-projects/spring-boot/blob/v2.1.6.RELEASE/spring Cela se produit à cause de -boot-project / spring-boot-dependencies / pom.xml # L1481).
Si vous voulez arrêter ce comportement (même s'il est spécifié comme ʻexclusion dans la nomenclature, vous voulez qu'il soit inclus comme dépendance), définissez ʻapplyMavenExclusions
sur false
.
build.gradle
dependencyManagement {
applyMavenExclusions = false
dependencies {
imports {
mavenBom "org.springframework.boot:spring-boot-dependencies:2.1.6.RELEASE"
}
}
}
dependencies {
implementation "org.apache.commons:commons-dbcp2"
}
Résultat d'exécution
> gradle dependencies --configuration runtimeClasspath
...
runtimeClasspath - Runtime classpath of source set 'main'.
\--- org.apache.commons:commons-dbcp2 -> 2.5.0
+--- org.apache.commons:commons-pool2:2.6.0 -> 2.6.2
\--- commons-logging:commons-logging:1.2
La dépendance vis-à-vis de la journalisation commune
a été restaurée.
build.gradle
configurations {
hoge
fuga
piyo
}
dependencyManagement {
dependencies {
dependency "org.apache.commons:commons-lang3:3.9"
}
hoge {
dependencies {
dependency "org.apache.commons:commons-lang3:3.8"
}
}
fuga {
dependencies {
dependency "org.apache.commons:commons-lang3:3.8.1"
}
}
}
dependencies {
hoge "org.apache.commons:commons-lang3"
fuga "org.apache.commons:commons-lang3"
piyo "org.apache.commons:commons-lang3"
}
Résultat d'exécution
> gradle dependencies --configuration hoge
...
hoge
\--- org.apache.commons:commons-lang3 -> 3.8
> gradle dependencies --configuration fuga
...
fuga
\--- org.apache.commons:commons-lang3 -> 3.8.1
> gradle dependencies --configuration piyo
...
piyo
\--- org.apache.commons:commons-lang3 -> 3.9
La description
build.gradle
dependencyManagement {
dependencies {
dependencies {
dependency "org.apache.commons:commons-lang3:3.9"
}
}
hoge {
dependencies {
dependency "org.apache.commons:commons-lang3:3.8"
}
}
fuga {
dependencies {
dependency "org.apache.commons:commons-lang3:3.8.1"
}
}
}
configuration
directement sous la dependencyManagement
, vous pouvez déclarer la version dépendante pour chaque configuration
.
--BOM peut être importé pour chaque configuration
build.gradle
dependencyManagement {
dependencies {
imports {
mavenBom "org.springframework.boot:spring-boot-dependencies:2.1.6.RELEASE"
}
dependency "org.apache.commons:commons-pool2:2.6.0"
}
testImplementation {
dependencies {
dependency "org.apache.commons:commons-lang3:3.9"
dependency "org.apache.commons:commons-pool2:2.6.1"
}
}
}
task showManagedVersions {
doFirst {
println """\
|[default]
| commons-lang3 = ${dependencyManagement.managedVersions['org.apache.commons:commons-lang3']}
| commons-pool2 = ${dependencyManagement.managedVersions['org.apache.commons:commons-pool2']}
|
|[testImplementation]
| commons-lang3 = ${dependencyManagement.testImplementation.managedVersions['org.apache.commons:commons-lang3']}
| commons-pool2 = ${dependencyManagement.testImplementation.managedVersions['org.apache.commons:commons-pool2']}
|""".stripMargin()
}
}
Résultat d'exécution
> gradle showManagedVersions
...
[default]
commons-lang3 = 3.8.1
commons-pool2 = 2.6.0
[testImplementation]
commons-lang3 = 3.9
commons-pool2 = 2.6.1
La description
build.gradle
doFirst {
println """\
|[default]
| commons-lang3 = ${dependencyManagement.managedVersions['org.apache.commons:commons-lang3']}
| commons-pool2 = ${dependencyManagement.managedVersions['org.apache.commons:commons-pool2']}
|
|[testImplementation]
| commons-lang3 = ${dependencyManagement.testImplementation.managedVersions['org.apache.commons:commons-lang3']}
| commons-pool2 = ${dependencyManagement.testImplementation.managedVersions['org.apache.commons:commons-pool2']}
|""".stripMargin()
}
--De dependencyManagement.managedVersions
, vous pouvez voir la version de la dépendance qui a finalement été résolue.
configuration
en utilisant dependencyManagement. <Configuration> .managedVersions
.Il existe plusieurs façons d'écraser la version déclarée dans la nomenclature, mais la méthode de dépendance directe peut être ** non utilisée dans les multi-projets **.
Supposons que vous ayez une application Spring Boot avec la configuration suivante.
Structure du projet
|-build.gradle
|-settings.gradle
|
|-common/
| |-src/main/java/
| | `-sample/common/
| | `-CommonComponent.java
| `-build.gradle
|
`-boot/
|-src/main/java/
| `-sample/
| `-SampleBootApplication.java
`-build.gradle
--common
est une image référencée par plusieurs projets (ici, pour simplifier, elle n'est référencée que par le projet boot
)
--boot
est un projet Spring Boot
CommonComponent.java
package sample.common;
import org.springframework.stereotype.Component;
import org.apache.commons.lang3.ObjectUtils;
@Component
public class CommonComponent {
public void method(Object obj) {
System.out.println(ObjectUtils.isEmpty(obj));
}
}
de
commons-lang3`, il indique si l'objet reçu est vide ou non.SampleBootApplication.java
package sample;
import sample.common.CommonComponent;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
@SpringBootApplication
public class SampleBootApplication {
public static void main(String[] args) {
try (ConfigurableApplicationContext context = SpringApplication.run(SampleBootApplication.class, args)) {
CommonComponent common = context.getBean(CommonComponent.class);
common.method("Hello World");
}
}
}
--C'est la classe qui démarre Spring Boot
CommonComponent
Supposons que vous écriviez chaque build.gradle
de ce multi-projet comme suit:
/build.gradle
plugins {
id "org.springframework.boot" version "2.1.6.RELEASE" apply false
id "io.spring.dependency-management" version "1.0.8.RELEASE" apply false
}
subprojects {
apply plugin: "java"
apply plugin: "io.spring.dependency-management"
repositories {
mavenCentral()
}
dependencyManagement {
dependencies {
imports {
mavenBom "org.springframework.boot:spring-boot-dependencies:2.1.6.RELEASE"
}
}
}
sourceCompatibility = 11
targetCompatibility = 11
compileJava.options.encoding = "UTF-8"
}
sous-projets
.
--Utilisation du plug-in de gestion des dépendances pour charger la nomenclature Spring Boot/common/build.gradle
dependencies {
implementation "org.springframework:spring-context"
implementation "org.apache.commons:commons-lang3:3.9"
}
--Déclarer une dépendance sur spring-context
car il utilise @ Component
est utilisé, la dépendance de
commons-lang3` est déclarée.3.9
est directement spécifié pour la version de commons-lang3
**/boot/build.gradle
apply plugin: "org.springframework.boot"
dependencies {
implementation project(":common")
implementation "org.springframework.boot:spring-boot-starter"
}
spring-boot-starter
est spécifié comme dépendance.Lorsque vous démarrez l'application avec ce paramètre, ce sera comme suit.
Résultat d'exécution
> gradle bootRun
...
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.6.RELEASE)
...
2019-07-06 20:06:16.365 INFO 16428 --- [ main] sample.SampleBootApplication : Started SampleBootApplication in 0.846 seconds (JVM running for 1.335)
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.commons.lang3.ObjectUtils.isEmpty(Ljava/lang/Object;)Z
at sample.common.CommonComponent.method(CommonComponent.java:10)
at sample.SampleBootApplication.main(SampleBootApplication.java:14)
> Task :boot:bootRun FAILED
FAILURE: Build failed with an exception.
NoSuchMethodError
Vous pouvez voir ce qui s'est passé en affichant les dépendances de chaque projet.
#dépendances de projet courantes
> gradle :common:dependencies --configuration runtimeClasspath
...
runtimeClasspath - Runtime classpath of source set 'main'.
+--- org.springframework:spring-context -> 5.1.8.RELEASE
| ...
\--- org.apache.commons:commons-lang3:3.9
#dépendances du projet de démarrage
> gradle :boot:dependencies --configuration runtimeClasspath
...
runtimeClasspath - Runtime classpath of source set 'main'.
+--- project :common
| +--- org.springframework:spring-context -> 5.1.8.RELEASE
| | ...
| \--- org.apache.commons:commons-lang3:3.9 -> 3.8.1
\--- org.springframework.boot:spring-boot-starter -> 2.1.6.RELEASE
...
--Si vous regardez de près, le commons-lang3
du projet common
est 3.9
, mais vu depuis le projet boot
, il est 3.8.1
.
est
3.9et [méthode nouvellement ajoutée](https://commons.apache.org/proper/commons-lang/javadocs/api-release/org /apache/commons/lang3/ObjectUtils.html#isEmpty-java.lang.Object-) --Lorsque le projet
common est compilé, il fait référence à
3.9, il peut donc être compilé sans aucun problème. --Mais lors du démarrage en tant que Spring Boot, le
runtimeClasspath du projet
boot` est utilisécommons-lang3
utilisé au démarrage est devenu 3.8.1
, et il n'y avait pas de telle méthode, ce qui a entraîné une erreur d'exécution./common/build.gradle
dependencies {
implementation "org.springframework:spring-context"
implementation "org.apache.commons:commons-lang3:3.9"
}
common
est 3.9
car il spécifie directement la version de commons-lang3
./boot/build.gradle
apply plugin: "org.springframework.boot"
dependencies {
implementation project(":common")
implementation "org.springframework.boot:spring-boot-starter"
}
boot
ne spécifie pas spécifiquement la version de commons-lang3
./build.gradle
plugins {
id "org.springframework.boot" version "2.1.6.RELEASE" apply false
id "io.spring.dependency-management" version "1.0.8.RELEASE" apply false
}
subprojects {
apply plugin: "java"
apply plugin: "io.spring.dependency-management"
repositories {
mavenCentral()
}
dependencyManagement {
dependencies {
imports {
mavenBom "org.springframework.boot:spring-boot-dependencies:2.1.6.RELEASE"
}
dependency "org.apache.commons:commons-lang3:3.9"
}
}
...
}
--Changé pour spécifier la version de commons-lang3
dans dependencyManagement
sous-projets
, donc il s'applique aux projets commun
et boot
./common/build.gradle
dependencies {
implementation "org.springframework:spring-context"
implementation "org.apache.commons:commons-lang3"
}
--Changé build.gradle
de common
pour arrêter de spécifier la version.
Vérification des dépendances
#dépendances courantes
> gradle :common:dependencies --configuration runtimeClasspath
...
runtimeClasspath - Runtime classpath of source set 'main'.
+--- org.springframework:spring-context -> 5.1.8.RELEASE
| ...
\--- org.apache.commons:commons-lang3 -> 3.9
#dépendance de démarrage
> gradle :boot:dependencies --configuration runtimeClasspath
...
runtimeClasspath - Runtime classpath of source set 'main'.
+--- project :common
| ...
| \--- org.apache.commons:commons-lang3 -> 3.9
\--- org.springframework.boot:spring-boot-starter -> 2.1.6.RELEASE
...
--Il est devenu "3.9" vu depuis "boot"
Résultat d'exécution
> gradle bootRun
...
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.6.RELEASE)
...
false
Bien sûr, même si vous l'exécutez, aucune erreur ne se produira.
Recommended Posts