Como resolver o aviso do maven-javadoc-plugin sobre a falta do arquivo javadoc-bundle-options/package-list?

Como resolver o aviso do maven-javadoc-plugin sobre a falta do arquivo javadoc-bundle-options/package-list?

Ao gerar o recurso de archive JavaDoc Java com o maven-javadoc-plugin, o seguinte aviso é exibido:

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

Eu verifiquei a página mojo do Apache Maven JavaDoc Plugin:
https://maven.apache.org/plugins/maven-javadoc-plugin/javadoc-mojo.html

Eu verifiquei as informações de depuração com -Xsinalizador:
mvn javadoc:jar@main-javadoc -X

Verifiquei a página do Oracle Java Tool (JDK12):
https://docs.oracle.com/en/java/javase/12/tools/javadoc.html

Suspeito que tenha algo a ver com o fato de eu ter uma configuração de projeto Maven para poder compilar o código de produção no JDK8 e ainda ser capaz de executar/compilar o código de teste no JDK11 (quando removo a configuração do plugin Maven Compiler, o aviso cessa, embora apareça em outros projetos que compilam apenas no JDK11).

Aqui está um POM mínimo do Apache Maven para reproduzir este aviso (observe que você precisará ter pelo menos uma fonte de classe Java no caminho de origem):

<?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>

Existe uma maneira de resolver esse aviso ainda tendo um único módulo Maven que compila o código de produção e o código de teste em (possivelmente) duas APIs JDK diferentes?

EDITAR:

  • Alterar o JDK e/ou %JAVA_HOME% não resolve esse problema.
  • Adicionar/remover um arquivo module-info.java não resolve esse problema.
  • Adicionado o motivo para suspeitar que a compilação em duas APIs JDK diferentes pode ser a causa disso.
  • Definições de execução corrigidas para que o JavaDoc não ocorra um erro ao compilar/empacotar/javadoc no JDK8.

Responder1

O que funcionou para mim foi remover ofonteealvotags da configuração geral do plug-in do compilador Maven e colocá-las em uma nova configuração de execução.

Aqui está o 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>

informação relacionada