Spring Boot のアプリで Maven を使っていたところ、pom.xml の dependency/version で警告が出ました。
これから、その詳細と解決方法を書いていきます。
バージョン
- Spring Boot 2.7.5
事象
以下の version に警告マークが付きました。
<project>
...
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
<scope>provided</scope>
</dependency>
...
</dependencies>
...
</project>
Eclipse の警告メッセージは以下の通りです。
Duplicating managed version 1.18.24 for lombok
原因
Spring Boot がライブラリのバージョンを指定しているため、二重定義になってしまうことが原因のようです。
対応方法
バージョンを指定しないように修正します。
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <scope>provided</scope> </dependency>
これで、Spring Boot が指定する Lombok のバージョンを使用することになります。
他のライブラリでも同じようなことが起きるので、特別な理由がなければ Spring Boot の指定に合わせておくのが無難かと思います。
Spring Boot の POM
念のため Spring Boot の POM を確認したところ、以下の通り Lombok のバージョンを確認できました。
spring-boot-dependencies-2.7.5.pom
<project>
...
<properties>
...
<lombok.version>1.18.24</lombok.version>
...
</properties>
<dependencyManagement>
<dependencies>
...
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
...
</dependencies>
</dependencyManagement>
...
</project>
他のライブラリも、同じように設定されているものが多いです。