我正在尝试编译同时使用Mapstruct
和Immutables
的项目。解决我的问题的唯一解决方案是运行:
mvn clean compile
->失败,编译失败;无法从Immutables
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
才能编译项目。
答案 0 :(得分:0)
构建了几个小时的问题后,我注意到此行恰好是构建失败的原因:
@Mapper(imports = {ImmutableFirstType.class, ImmutableSecondType.class}) // this one
public interface FirstSecondTypeMapper {
我认为imports
是使Immutables
与mapstruct
一起工作所必需的。只需使用@Mapper
,一切都会好起来。