使用 mapstruct 和 querydsl 时 compile 问题备忘
参考:https://stackoverflow.com/questions/74825653/querydsl-5-with-mapstruct-issues-while-generating-resources
问题
在使用 springboot3
+ mapstruct
+ querydsl
的过程中,遇到了一个问题。
如果不配置 maven-compiler-plugin
,能正常生成 querydsl
的 Q
,但是不能生成 mapstruct
的实现类。
如果配置了,querydsl
的 Q
类又无法正常生成了。
解决方案
移除 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>