使用 mapstruct 和 querydsl 时 compile 问题备忘

参考:https://stackoverflow.com/questions/74825653/querydsl-5-with-mapstruct-issues-while-generating-resources

问题

在使用 springboot3 + mapstruct + querydsl 的过程中,遇到了一个问题。
如果不配置 maven-compiler-plugin,能正常生成 querydslQ ,但是不能生成 mapstruct 的实现类。
如果配置了,querydslQ 类又无法正常生成了。

解决方案

移除 pom 文件中的 maven-compiler-plugin,然后使用如下依赖即可(其中 mapstruct-processor 是我之前没有引入的) :

<dependency>
    <groupId>com.querydsl</groupId>
    <artifactId>querydsl-apt</artifactId>
    <version>5.0.0</version>
    <classifier>jakarta</classifier>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>com.querydsl</groupId>
    <artifactId>querydsl-jpa</artifactId>
    <version>5.0.0</version>
    <classifier>jakarta</classifier>
</dependency>
<dependency>
    <groupId>org.mapstruct</groupId>
    <artifactId>mapstruct</artifactId>
    <version>1.5.3.Final</version>
</dependency>
<dependency>
    <groupId>org.mapstruct</groupId>
    <artifactId>mapstruct-processor</artifactId>
    <version>1.5.3.Final</version>
    <scope>provided</scope>
</dependency>