我正在尝试在我的应用程序中使用 Mapstruct。我包含了依赖项,发现它已成功下载到我的项目中,但 @Mapper 注释未被识别。
我的相关依赖如下
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>1.5.5.Final</version>
</dependency>
当这个单独不起作用时,我将其添加到maven-compiler-plugin中的注释processorPaths中
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>17</source>
<target>17</target>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
</path>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.5.5.Final</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
一些消息来源表示路径的顺序可能很重要,交换它们并没有帮助。我还尝试将以下路径添加到annotationProcessorPaths:
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-mapstruct-binding</artifactId>
<version>0.2.0</version>
</path>
这也行不通。我还尝试直接添加 mapstruct-processor 作为依赖项,但这也没有帮助。
我正在使用 Intellij 并选中“启用注释处理”。有什么想法这里发生了什么吗?
顺便使用Java 17。
我也遇到了同样的问题。
这是我解决此问题的依赖项
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>1.6.0.Beta1</version>
</dependency>
关于插件,我用的是这个
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.6.0.Beta1</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>