我试图将MapStruct与QueryDsl、Spring Boot 3和Java 17一起使用,但似乎我用于MapStruct的maven-compiler-plugin
阻止了QueryDsl资源的生成。
<dependencies>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
<version>5.0.0</version>
<classifier>jakarta</classifier>
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>5.0.0</version>
<classifier>jakarta</classifier>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${org.mapstruct.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>
如果删除maven-compiler-plugin
,则会生成QueryDsl资源,但不会生成MapStruct。
我还尝试过添加QueryDsl注解处理器,但没有任何运气。
<path>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>5.0.0</version>
</path>
有什么建议吗?
2条答案
按热度按时间pdsfdshx1#
尝试删除maven-compiler-plugin并只保留这些依赖项:
kg7wmglp2#
正如其他评论所建议的,一个解决方案是完全删除maven-compiler-plugin并添加以下依赖项。
这将同时生成mapstruct和querydsl资源。
为了强制mapstruct将Map器生成为Sping Boot bean,我还必须在@Mapper注解中设置
componentModel = MappingConstants.ComponentModel.SPRING
属性。