使用 build-helper-maven-plugin 添加生成的 Apache Avro 源

Add generated Apache Avro source with build-helper-maven-plugin

我正在使用 Apache avro 生成一些 pojo,在 运行 中都运行良好,预计生成的源代码在 IDE (intellij) 的导入中被标记为不存在。

我尝试使用 build-helper-maven-plugin 添加源,但它不起作用 这是我的 apache avro 和构建助手插件的 maven 配置:

<plugin>
    <groupId>org.apache.avro</groupId>
    <artifactId>avro-maven-plugin</artifactId>
    <version>${avro.version}</version>
    <configuration>
        <stringType>String</stringType>
    </configuration>
    <executions>
        <execution>
            <phase>generate-sources</phase>
            <goals>
                <goal>schema</goal>
            </goals>
            <configuration>
                <sourceDirectory>${project.basedir}/src/main/avro/</sourceDirectory>
                <outputDirectory>${project.build.directory}/generated-sources/</outputDirectory>
                <imports>
                    <import>${project.basedir}/src/main/avro/errorkind.avsc</import>
                </imports>
            </configuration>
        </execution>
    </executions>
</plugin>

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>3.2.0</version>
    <executions>
        <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>add-source</goal>
            </goals>
            <configuration>
                <sources>
                    <source>${project.build.directory}/generated-sources</source>
                </sources>
            </configuration>
        </execution>
    </executions>
</plugin>

“generated-sources”位于 ${project.build.directory}/target 文件夹下 另外,尝试将“generated-sources”标记为源目录。您可以通过以下方式做到这一点:

项目结构 → 模块 → 单击 generated-sources 文件夹并将其设为源文件夹。

尝试使用以下方法更改您的 pom 并 运行 全新安装,然后您应该能够导入。

<configuration>          
   <sourceDirectory>${project.basedir}/src/main/resources/</sourceDirectory>
   <source>${project.build.directory}/generated-sources</source>
</configuration>

在 POM 中,InteliJ 可能会在添加后给你一个假错误,但你的构建会成功。