gpt4 book ai didi

java - 带启动 spring &java 13 的 mapstruct 1.3.1

转载 作者:行者123 更新时间:2023-12-01 17:57:17 26 4
gpt4 key购买 nike

我正在尝试使用 maven 和 STS (Eclipse) 并基于 Java 13 配置 mapstrcut 1.3.1。我在 pom.xml 中尝试了多种配置,包括使用 maven-compiler-plugin或者 maven-processor-plugin来自 org.bsc.maven。 Mapstruct 不生成任何源类,因此我的测试导致 ClassNotFoundException,因为找不到映射器接口(interface)的实现。有人在 Spring Boot 中使用 java 13 成功配置运行 mapstruct 吗?

pom.xml

...
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- Mapping von Entities in DTO -->
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>${org.mapstruct.version}</version>
<scope>compile</scope>
</dependency>
<dependency> <!-- nessecary? -->
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${org.mapstruct.version}</version>
<scope>compile</scope>
</dependency>
...

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version> <!-- or newer version -->
<configuration>
<source>13</source> <!-- depending on your project -->
<target>13</target> <!-- depending on your project -->
<annotationProcessorPaths>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${org.mapstruct.version}</version>
</path>
<!-- other annotation processors -->
</annotationProcessorPaths>
</configuration>
</plugin>
enter code here

映射器接口(interface)

@Mapper(componentModel = "spring")
public interface ProduktMapper {
Produkt dto2entity(ProduktDTO produktDTO);
ProduktDTO entity2dto(Produkt produkt);
}

单元测试

@Test
public void testEntity2DtoMapper() {
Produkt produkt = new Produkt();
produkt.setProduktname("Testprodukt");
ProduktDTO produktDTO = mapper.entity2dto(produkt);

assertEquals(produkt.getProduktname(), produktDTO.getProduktname());
}

最佳答案

你是否尝试过先从maven编译?

就我而言,它在使用 maven 编译时工作正常,但在作为 Spring Boot 应用程序启动时失败。

经过一番搜索,我发现 eclipse 必须配置正确的 Maven 连接器。

如果进入Window > Prefrences > Maven Annotation Processing缺少条目,这意味着必须下载 Maven 连接器。

为了安全起见,在继续之前请检查您是否安装了此插件:m2e-apt 。然后打开Window > Preferences > Maven > Discovery ,单击“打开目录”。搜索“jdt”,您将在列表中看到一个可供下载的连接器。

安装、重新启动并返回 Preferences > Maven > Annotation Processing (缺少的选项卡!),选择“自动配置 JDT APT”,然后确认以下所有对话框。

现在所有错误都应该消失,并且项目应该可以编译!

关于java - 带启动 spring &java 13 的 mapstruct 1.3.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60693512/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com