UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【MapStruct】LombokとMapStructを同時に使う場合

LombokとMapStructを同時に使う場合に注意が必要といのを知った

Lombokよりも後に動くAnnotation Processorから、Lombokで自動生成されたBuilderが見えなくなっているとのこと

github.com

なのでpom.xmlで先にmapstruct-processorの依存を書いて、次にlombokの依存を書くと動く

    <dependency>
      <groupId>org.mapstruct</groupId>
      <artifactId>mapstruct-processor</artifactId>
      <scope>provided</scope>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <scope>provided</scope>
      <optional>true</optional>
    </dependency>

pom.xmlの記載順番に依存関係があるのは知らなかった

<optional>true</optional><scope>provided</scope>の違いがわからなかったので後日調べる

他参考

https://qiita.com/moaikids/items/d98118c2e84dcb543c24

https://qiita.com/poponuki/items/053bfb91191dc31ecac8