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>
他のライブラリも、同じように設定されているものが多いです。