¿Cómo resolver la advertencia de maven-javadoc-plugin por la falta del archivo javadoc-bundle-options/package-list?

¿Cómo resolver la advertencia de maven-javadoc-plugin por la falta del archivo javadoc-bundle-options/package-list?

Al generar el recurso de archivo JavaDoc Java con maven-javadoc-plugin, se muestra la siguiente advertencia:

[WARNING] javadoc: warning - Error reading file: /maven-javadoc-example/target/javadoc-bundle-options/package-list

He comprobado la página mojo del complemento Apache Maven JavaDoc:
https://maven.apache.org/plugins/maven-javadoc-plugin/javadoc-mojo.html

He comprobado la información de depuración con -Xla bandera:
mvn javadoc:jar@main-javadoc -X

Revisé la página de la herramienta Oracle Java (JDK12):
https://docs.oracle.com/en/java/javase/12/tools/javadoc.html

Sospecho que tiene algo que ver con el hecho de que tengo una configuración de proyecto Maven para poder compilar código de producción contra JDK8 y al mismo tiempo poder ejecutar/compilar código de prueba contra JDK11 (cuando elimino la configuración del complemento Maven Compiler, la advertencia cesa, aunque aparece en otros proyectos que solo compilan contra JDK11).

Aquí hay un POM mínimo de Apache Maven para reproducir esta advertencia (tenga en cuenta que deberá tener al menos una fuente de clase Java en la ruta de origen):

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.superuser.maven</groupId>
    <artifactId>maven-javadoc-example</artifactId>
    <version>1.0.0</version>

    <properties>
        <!-- Settings: maven-resource-plugin -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <!-- Settings: maven-compiler-plugin -->
        <maven.compiler.main-jdk>8</maven.compiler.main-jdk>
        <maven.compiler.test-jdk>11</maven.compiler.test-jdk>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <executions>
                    <execution>
                        <id>default-compile</id>
                        <phase>none</phase>
                    </execution>
                    <execution>
                        <id>main-compile</id>
                        <phase>compile</phase>
                        <configuration>
                            <source>${maven.compiler.main-jdk}</source>
                            <target>${maven.compiler.main-jdk}</target>
                            <showWarnings>true</showWarnings>
                            <showDeprecation>true</showDeprecation>
                            <compilerArgs>
                                <arg>-Xlint:all,-processing,-cast,-serial,-try</arg>
                            </compilerArgs>
                            <excludes>
                                <exclude>module-info.java</exclude>
                            </excludes>
                        </configuration>
                    </execution>
                    <execution>
                        <id>default-testCompile</id>
                        <phase>none</phase>
                    </execution>
                    <execution>
                        <id>test-compile</id>
                        <phase>test-compile</phase>
                        <goals>
                            <goal>testCompile</goal>
                        </goals>
                        <configuration>
                            <release>${maven.compiler.test-jdk}</release>
                        </configuration>
                    </execution>
                </executions>
                <configuration>
                    <source>${maven.compiler.test-jdk}</source>
                    <target>${maven.compiler.test-jdk}</target>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>3.1.1</version>
                <executions>
                    <execution>
                        <id>main-javadoc</id>
                        <phase>package</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                        <configuration>
                            <sourceFileExcludes>module-info.java</sourceFileExcludes>
                        </configuration>
                    </execution>
                </executions>
                <configuration>
                    <quiet>true</quiet>
                    <failOnWarnings>false</failOnWarnings>
                    <failOnError>true</failOnError>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

¿Hay alguna manera de resolver esta advertencia si aún se tiene un único módulo Maven que compila código de producción y código de prueba contra (posiblemente) dos API JDK diferentes?

EDITAR:

  • Cambiar el JDK y/o %JAVA_HOME% no resuelve este problema.
  • Agregar o eliminar un archivo module-info.java no resuelve este problema.
  • Se agregó el motivo para sospechar que la compilación con dos API de JDK diferentes podría ser la causa de esto.
  • Se corrigieron las definiciones de ejecución para que JavaDoc no genere un error al compilar/empaquetar/javadoc contra JDK8.

Respuesta1

Lo que funcionó para mí fue quitar elfuenteyobjetivoetiquetas de la configuración general del complemento del compilador Maven y colocarlas en una nueva configuración de ejecución.

Aquí está el POM:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.superuser.maven</groupId>
    <artifactId>maven-javadoc-example</artifactId>
    <version>1.0.0.Final</version>

    <properties>
        <!-- Settings: maven-resource-plugin -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <!-- Settings: maven-compiler-plugin -->
        <maven.compiler.main-jdk>8</maven.compiler.main-jdk>
        <maven.compiler.test-jdk>11</maven.compiler.test-jdk>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <executions>
                    <execution>
                        <id>default-compile</id>
                        <phase>none</phase>
                        <configuration>
                            <release>${maven.compiler.test-jdk}</release>
                        </configuration>
                    </execution>
                    <execution>
                        <id>main-compile</id>
                        <phase>compile</phase>
                        <configuration>
                            <release>${maven.compiler.test-jdk}</release>
                        </configuration>
                    </execution>
                    <execution>
                        <id>main-compile-jdk8</id>
                        <phase>none</phase>
                        <configuration>
                            <source>${maven.compiler.main-jdk}</source>
                            <target>${maven.compiler.main-jdk}</target>
                            <excludes>
                                <exclude>module-info.java</exclude>
                            </excludes>
                        </configuration>
                    </execution>
                    <execution>
                        <id>default-testCompile</id>
                        <phase>none</phase>
                    </execution>
                    <execution>
                        <id>test-compile</id>
                        <phase>test-compile</phase>
                        <goals>
                            <goal>testCompile</goal>
                        </goals>
                        <configuration>
                            <release>${maven.compiler.test-jdk}</release>
                        </configuration>
                    </execution>
                </executions>
                <configuration>
                    <showWarnings>true</showWarnings>
                    <showDeprecation>true</showDeprecation>
                    <compilerArgs>
                        <arg>-Xlint:all,-processing,-cast,-serial,-try</arg>
                    </compilerArgs>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>3.1.1</version>
                <executions>
                    <execution>
                        <id>main-javadoc</id>
                        <phase>package</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                        <configuration>
                            <sourceFileExcludes>module-info.java</sourceFileExcludes>
                        </configuration>
                    </execution>
                </executions>
                <configuration>
                    <quiet>true</quiet>
                    <failOnWarnings>false</failOnWarnings>
                    <failOnError>true</failOnError>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

información relacionada