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.
Alguém conseguiu fazer o javadoc funcionar sem precisar alterar a versão de origem para 1.8 (conforme sugerido em outros fóruns)? Estou usando o JDK v11.0.5 e o problema ainda está presente (também com o JDK 12+).
Edit: Este erro foi originado do maven e lançado pelo maven-javadoc-plugin. Não consegui fazê-lo funcionar no JDK 11+, mesmo com a <source>8</source>
configuração.
Respostas:
Conforme sugerido no rastreador de problemas do OpenJDK, isso pode ser contornado com a definição da fonte no plugin Javadoc:
fonte
Has anyone been able to make javadoc work without having to change the source version to 1.8
O javadoc produz links para pacotes que você usa, por exemplo, para classes documentadas
.../javase/11/docs/api
. Enquanto seus comentários estão em um módulo sem nome, os destinos não estão e o javadoc não pode combinar esses dois. Ele produzpackage-list
umelement-list
arquivo ou um arquivo, portanto você não pode misturar módulos não nomeados (pacotes) com módulos nomeados.Não encontrei uma maneira de limitar os links que o javadoc tenta produzir; então você pode precisar usar módulos para seu próprio projeto. Isso me parece ridículo, apenas para fazer javadoc feliz. Eu acho que essa é apenas uma das razões pelas quais tantas pessoas aderem ao Java 8.
fonte
Houve uma significativa quebra mudança desde Java 9 para usar Doclet API
A API antiga está usando o pacote com.sun.javadoc
Você pode tentar usar a nova API do Doclet, veja exemplos
fonte