mapstruct 1.3.1 с загрузочной пружиной & java 13 - PullRequest
0 голосов
/ 15 марта 2020

Я пытаюсь настроить 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());
}

1 Ответ

0 голосов
/ 16 марта 2020

Это конфигурация, которая работает для моего приложения весенней загрузки 2.2.5 с Java 13, mapstruct 1.3.1 и lombok 1.18.12.

...
    <properties>
        <java.version>13</java.version>
        <mapstruct.version>1.3.1.Final</mapstruct.version>
        <lombok.version>1.18.12</lombok.version>
    </properties>
...
        <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct</artifactId>
            <version>${mapstruct.version}</version>
            <scope>compile</scope>
        </dependency>
...
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <annotationProcessorPaths>
                        <path>
                            <groupId>org.mapstruct</groupId>
                            <artifactId>mapstruct-processor</artifactId>
                            <version>${mapstruct.version}</version>
                        </path>
                        <path>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                            <version>${lombok.version}</version>
                        </path>
                    </annotationProcessorPaths>
                </configuration>
            </plugin>
...
...