Maven 编译器插件未将生成的 类 复制到测试源

Maven compiler plugin not copying generated classes to test-sources

Maven 编译器插件未将生成的 类(来自 mapstruct 的映射器)复制到 target\generated-test-sources\test-annotations。目录已创建,但它是空的。生成的 类 仅复制到 target\generated-sources\annotations。

这是我的 maven-compiler 插件配置:

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <release>11</release>
                <annotationProcessorPaths>
                    <path>
                        <groupId>org.mapstruct</groupId>
                        <artifactId>mapstruct-processor</artifactId>
                        <version>${org.mapstruct.version}</version>
                    </path>
                    <path>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                        <version>${org.lombok.version}</version>
                    </path>
                </annotationProcessorPaths>
            </configuration>
        </plugin>

谢谢!

生成源的位置由 maven-compiler-plugin 定义。

默认情况下,它会将注释处理器生成的 类 放入:

  • target/generated-sources/annotations - 从 src/main/java 位置编译 类 时
  • target/generated-test-sources/test-annotations - 从 src/test/java 位置编译类时

为了让您在 target/generated-test-sources/test-annotations 下看到 类,您的映射器应该在 src/test/java.