Web系開発メモ

Java, C#, HTML, CSS, JavaScript のことなどを書いてます。

SpringBoot pom.xmlのversionで警告が出る場合の対処方法

Spring Boot のアプリで Maven を使っていたところ、pom.xmldependency/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>

他のライブラリも、同じように設定されているものが多いです。