Exit code: 1 - javadoc: error - The code being documented uses packages in the unnamed module, but the packages defined in https://docs.oracle.com/en/java/javase/11/docs/api/ are in named modules.
¿Alguien ha podido hacer que javadoc funcione sin tener que cambiar la versión de origen a 1.8 (como se sugiere en otros foros)? Estoy usando JDK v11.0.5 y el problema aún está presente (también con JDK 12+).
Editar: este error se originó en maven y fue lanzado por el complemento maven-javadoc. No he podido hacerlo funcionar para JDK 11+ incluso con la <source>8</source>
configuración.
Respuestas:
Como se sugiere en el rastreador de problemas de OpenJDK, esto se puede solucionar con la definición de la fuente en el complemento Javadoc:
fuente
Has anyone been able to make javadoc work without having to change the source version to 1.8
javadoc produce enlaces a paquetes que usa, por ejemplo, a clases documentadas en
.../javase/11/docs/api
. Mientras sus comentarios están en un módulo sin nombre, los objetivos no lo están, y javadoc no puede combinar esos dos. Producepackage-list
unelement-list
archivo o un archivo, por lo que no puede mezclar módulos (paquetes) sin nombre con módulos con nombre.No encontré una manera de limitar los enlaces que javadoc intenta producir; por lo que puede que tenga que usar módulos para su propio proyecto. Esto me parece ridículo, solo para hacer feliz a Javadoc. Supongo que esta es solo una de las razones por las que tanta gente se apega a Java 8.
fuente
Hubo una significativa ruptura cambios desde Java 9 para el uso de la API Doclet
La API anterior está usando el paquete com.sun.javadoc
Puedes intentar usar la nueva API de Doclet, ver ejemplos
fuente