Как сохранить сгенерированные исходные коды вне целевой папки сгенерированных источников - PullRequest
0 голосов
/ 28 июня 2018

Я использую MapStruct для генерации некоторых карт Entity to DTO. Я определил абстрактный маппер, и я создал для него несколько тестов, используя тестовую сущность, test dto и test mapper. Эти тестовые файлы находятся в папке src / test / java, но когда MapStruct генерирует реализацию для преобразователя тестов, он помещает сгенерированный источник в папку target / генерируемый-источники вместо папки target / генерируемый-тест-источники. Это заставляет класс быть скомпилированным в фактический файл jar, который я не хочу.

[ОБНОВЛЕНО] Я привел пример, который воссоздает проблему здесь:

https://github.com/niltz/so-51090868-example

Похоже, что он работает нормально, когда я запускаю сборку с maven из командной строки, но когда я импортирую pom в Spring Tool Suite, я получаю проблему.

Ответы [ 2 ]

0 голосов
/ 12 июля 2018

Похоже, что это проблема с плагином m2e eclipse при использовании JDT APT, maven-compiler-plugin и более старой версии eclipse.

https://marketplace.eclipse.org/content/m2e-apt

Очевидно, мне нужно убедиться, что я использую Eclipse Photon или выше, или вместо этого я могу использовать плагин maven-processor-plugin. Я решил обновить Eclipse, и теперь он работает.

https://bsorrentino.github.io/maven-annotation-plugin/

0 голосов
/ 29 июня 2018

Я сделал быстрый тест со следующим классом в src/test/java/ с классом

 @Mapper
 public abstract class AbstactClass {

 }

У меня есть следующие зависимости и плагины в моем maven pom:

      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.5.1</version>
          <configuration>
            <source>1.8</source>
            <target>1.8</target>
            <annotationProcessorPaths>
              <path>
                <groupId>org.mapstruct</groupId>
                <artifactId>mapstruct-processor</artifactId>
                <version>1.1.0.Final</version>
              </path>
            </annotationProcessorPaths>
          </configuration>
        </plugin>

    <dependency>
      <groupId>org.mapstruct</groupId>
      <artifactId>mapstruct-jdk8</artifactId>
      <version>1.1.0.Final</version>
    </dependency>

и побежал mvn clean install. Сгенерированный класс в target/generated-test-sources. Если вы дадите больше информации о вашем классе и настройках, я мог бы помочь больше.

...