avro-maven-plugin 生成未使用的导入

avro-maven-plugin generates unused imports

提问人:T. Franz 提问时间:10/6/2023 更新时间:10/6/2023 访问量:24

问:

我正在将Apache Kafka与AVRO一起使用。 我们通过编写 AVDL 文件并使用 avro-maven-plugin 和编译器等来生成/编译它们来创建 Java 类。

生成后,从 AVDL 文件生成的所有 Java 类,其记录类型包含未使用的导入,例如:

import org.apache.avro.generic.GenericArray;
import org.apache.avro.util.Utf8;

Utf8 导入确实有时会使用,但经常被生成而不使用。 GenericArray我从未在任何地方找到过。

如果不使用这些导入,是否有可能阻止生成这些导入?生成已经包含警告的代码不太好。

我的 pom.xml 如下所示:

<build>
    <pluginManagement>
      <plugins>
        <!--This plugin's configuration is used to store Eclipse m2e settings 
          only. It has no influence on the Maven build itself. -->
        <plugin>
          <groupId>org.eclipse.m2e</groupId>
          <artifactId>lifecycle-mapping</artifactId>
          <version>1.0.0</version>
          <configuration>
            <lifecycleMappingMetadata>
              <pluginExecutions>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.apache.avro</groupId>
                    <artifactId>avro-maven-plugin</artifactId>
                    <versionRange>1.11.3</versionRange>
                    <goals>
                      <goal>idl-protocol</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore/>
                  </action>
                </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-clean-plugin</artifactId>
        <configuration>
          <excludeDefaultDirectories>true</excludeDefaultDirectories>
          <filesets>
            <fileset>
              <directory>target</directory>
            </fileset>
            <fileset>
              <directory>src</directory>
            </fileset>
          </filesets>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>11</source>
          <target>11</target>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <executions>
          <execution>
            <id>attach-sources</id>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.avro</groupId>
        <artifactId>avro-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>avdl-generation</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>idl-protocol</goal>
            </goals>
            <configuration>
              <sourceDirectory>${project.basedir}/avdl/</sourceDirectory>
              <outputDirectory>${project.basedir}/src/main/java/</outputDirectory>
              <includes>
                <include>**/*.avdl</include>
              </includes>
              <fieldVisibility>private</fieldVisibility>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <configuration>
          <doclint>none</doclint>
        </configuration>
        <executions>
          <execution>
            <id>attach-javadocs</id>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  <dependencies>
    <dependency>
      <groupId>org.apache.avro</groupId>
      <artifactId>avro</artifactId>
      <version>1.11.3</version>
    </dependency>
    <dependency>
      <groupId>org.apache.avro</groupId>
      <artifactId>avro-maven-plugin</artifactId>
      <version>1.11.3</version>
    </dependency>
    <dependency>
      <groupId>org.apache.avro</groupId>
      <artifactId>avro-compiler</artifactId>
      <version>1.11.3</version>
    </dependency>
  <dependencies>

我试图在互联网上找到一些有关此的信息,但没有找到任何东西。 在没有警告的情况下生成 Java 代码会很好。

谢谢!

java 警告 maven-plugin avro

评论

0赞 Jorn 10/6/2023
你不应该担心它。它是生成的代码,不需要完美。而且,您不应该首先对生成的代码启用 linter 和警告检查。

答: 暂无答案