【发布时间】:2017-03-10 08:41:42
【问题描述】:
正如标题所说,我在src/test/java中有一个mapper接口,不是mapstruct处理器生成的。
在同一个项目中,会生成src/main/java中的所有mapper。这是预期的行为吗?
如何在测试源中生成映射器?
编辑(更多信息):
简化的 Maven 模块结构:
root_project
-> module_1
root_project的pom.xml
<build>
<pluginManagement>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.0</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>
<compilerArgs>
<compilerArg>
-Amapstruct.defaultComponentModel=spring
</compilerArg>
</compilerArgs>
</configuration>
</plugin>
...
module_1的pom.xml基本是空的:
<dependencies>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-jdk8</artifactId>
<scope>compile</scope>
</dependency>
【问题讨论】:
-
您是如何设置注释处理器的?你能分享你的 POM 或类似的东西吗?
-
插件在 POM 的构建部分看起来如何? pluginManagement 中的配置看起来不错。
-
编译是如何调用的? maven 编译器插件有
compile和testCompile阶段。如果只运行mvn compile,则只编译应用程序源代码。 -
@Filip 没有
build标签,这都是隐含的。我用clean install构建。我刚刚重新创建了一个新项目设置,它按预期工作,所以错误必须在旧项目的配置中。如果我发现任何东西,我会更新这个问题。
标签: mapstruct