Я пытаюсь настроить mapstrcut 1.3.1 с maven и STS (Eclipse) и на основе Java 13. Я попробовал несколько конфигураций в моем pom. xml, включая использование maven-compiler-plugin
или альтернативно maven-processor-plugin
от org.bs c .maven. Mapstruct не генерирует никаких исходных классов, и поэтому мой тест приводит к исключению ClassNotFoundException, так как не может быть найдена реализация интерфейса mapper. У кого-нибудь есть успешный конфиг, работающий с mapstruct с java 13 при весенней загрузке?
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
Mapper Interface
@Mapper(componentModel = "spring")
public interface ProduktMapper {
Produkt dto2entity(ProduktDTO produktDTO);
ProduktDTO entity2dto(Produkt produkt);
}
Unit Test
@Test
public void testEntity2DtoMapper() {
Produkt produkt = new Produkt();
produkt.setProduktname("Testprodukt");
ProduktDTO produktDTO = mapper.entity2dto(produkt);
assertEquals(produkt.getProduktname(), produktDTO.getProduktname());
}