【Maven】dependencyのバージョンをSpring系の内部バージョンに合わせる【SpringBoot】
TL;DR
-
${ユーザー}/.m2/repository/org/springframework/boot/spring-boot-dependencies/${Springのバージョン}.RELEASE/spring-boot-dependencies-${Springのバージョン}.RELEASE.pom
に定義されているproperties
はプロジェクトのpom
からも参照できる
- (正確には、このような
pom
に書かれているproperties
にアクセスできる)
- この
properties
を元にバージョンを設定することで、dependency
のバージョンをSpringBoot
のバージョンに合わせることができる
- アップデートが楽になる
- ライブラリの相性問題が発生しにくくなる
やること
${ユーザー}/.m2/repository/org/springframework/boot/spring-boot-dependencies/${Springのバージョン}.RELEASE/spring-boot-dependencies-${Springのバージョン}.RELEASE.pom
に定義されているproperties
はプロジェクトのpom
からも参照できる
- (正確には、このような
pom
に書かれているproperties
にアクセスできる)
properties
を元にバージョンを設定することで、dependency
のバージョンをSpringBoot
のバージョンに合わせることができる
- アップデートが楽になる
- ライブラリの相性問題が発生しにくくなる
spring-boot-starter
系の依存にモジュールを加える場合などで、手動でspring-boot-starter
内の依存に合わせてバージョンを管理するのは手間になったりします。
どうせなら色々なライブラリのバージョンがSpring
のバージョンに合わせて管理されている方が諸々楽なので、そのやり方を書きます。
やり方
${ユーザー}/.m2/repository/org/springframework/boot/spring-boot-dependencies/${Springのバージョン}.RELEASE/spring-boot-dependencies-${Springのバージョン}.RELEASE.pom
内のproperties
の情報を用いることでできます。
...
<properties>
<activemq.version>5.15.12</activemq.version>
<antlr2.version>2.7.7</antlr2.version>
<appengine-sdk.version>1.9.79</appengine-sdk.version>
<artemis.version>2.10.1</artemis.version>
<aspectj.version>1.9.5</aspectj.version>
<assertj.version>3.13.2</assertj.version>
...
Jacksonの例
Jackson
を例にやってみます。
spring-boot-dependencies-2.2.6.RELEASE.pom
ではjackson.version
として以下のように定義されています。
<jackson.version>2.10.3</jackson.version>
<jackson-bom.version>${jackson.version}</jackson-bom.version>
これをプロジェクトのpom
で導入すると以下のように書けます。
${jackson.version}
として変数を参照しています。
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-json -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-json</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.module/jackson-module-kotlin -->
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-kotlin</artifactId>
<version>${jackson.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.dataformat/jackson-dataformat-csv -->
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-csv</artifactId>
<version>${jackson.version}</version>
</dependency>
ideaの場合
Intellij idea
の場合、変数に対する補完が効き、定義に飛ぶこともできます。
これによって効率的に目的の変数を探すことができるでしょう。
Author And Source
この問題について(【Maven】dependencyのバージョンをSpring系の内部バージョンに合わせる【SpringBoot】), 我々は、より多くの情報をここで見つけました https://qiita.com/wrongwrong/items/f8bf4e2bb45666383bee著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .