我正在使用MapStruct生成一些Entity到DTO映射器。我定义了一个抽象映射器,并使用测试实体,测试dto和测试映射器为其创建了一些测试。这些测试文件位于src / test / java文件夹中,但是当MapStruct生成测试映射器的实现时,它将生成的源放置在target / Generated-sources文件夹中,而不是target / Generated-test-sources文件夹中。这将导致该类被编译为我不想要的实际jar文件。
[更新] 我举了一个在这里重现问题的例子:
https://github.com/niltz/so-51090868-example
当我在命令行上使用maven运行构建时,似乎工作正常,但是当我将pom导入Spring Tool Suite时,我遇到了问题。
答案 0 :(得分:1)
我对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
中。
如果您提供有关班级和设置的更多信息,我可以提供更多帮助。
答案 1 :(得分:1)
在使用JDT APT,maven-compiler-plugin和较旧版本的eclipse时,m2e eclipse插件似乎有问题。
https://marketplace.eclipse.org/content/m2e-apt
显然,我需要确保使用Eclipse Photon或更高版本,或者可以使用maven-processor-plugin代替。我选择了升级Eclipse,现在看来可以了。