Как скомпилировать проект только с `mvn clean install` без необходимости впоследствии запускать` mvn install`? - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь скомпилировать проект, который использует Mapstruct и Immutables.Единственное решение, которое решает мою проблему - это запустить:

  1. mvn clean compile -> не удалось с ошибкой компиляции;не может найти сгенерированные классы из Immutables
  2. mvn compile -> успешно

Что для меня неприемлемо.

Я пробовал рекомендованное вами решение, которое выможно увидеть в разделе кода.Я также посмотрел:

...

<mapstruct.version>1.3.0.Beta2</mapstruct.version>
<immutables.version>2.7.3</immutables.version>

...

<dependency>
    <groupId>org.mapstruct</groupId>
    <artifactId>mapstruct-jdk8</artifactId>
    <version>${mapstruct.version}</version>
</dependency>
<dependency>
    <groupId>org.mapstruct</groupId>
    <artifactId>mapstruct-processor</artifactId>
    <version>${mapstruct.version}</version>
</dependency>

...

<build>
    <plugins>
        <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>${mapstruct.version}</version>
                    </path>
                    <path>
                        <groupId>org.immutables</groupId>
                        <artifactId>value</artifactId>
                        <version>${immutables.version}</version>
                    </path>
                </annotationProcessorPaths>
            </configuration>
        </plugin>
    </plugins>
</build>

Я хотел бы иметь возможность запустить только mvn clean compile, чтобы скомпилировать проект.

1 Ответ

0 голосов
/ 24 января 2019

После нескольких часов построения минимального примера проблемы я заметил эту строку, которая оказалась причиной неудачной сборки:

@Mapper(imports = {ImmutableFirstType.class, ImmutableSecondType.class})     // this one
public interface FirstSecondTypeMapper {

Я думал imports необходимы для того, чтобы Immutables с mapstruct работой.Просто использовал @Mapper и все прошло нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...