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.
Кто-нибудь смог заставить работать javadoc без необходимости менять исходную версию на 1.8 (как предлагалось на других форумах)? Я использую JDK v11.0.5, и проблема все еще присутствует (также с JDK 12+).
Редактировать: эта ошибка возникла из-за maven и выбрасывается плагином maven-javadoc. Я не смог заставить его работать на JDK 11+ даже с <source>8</source>
конфигурацией.
Ответы:
Как предложено в трекере проблем OpenJDK, это можно обойти с помощью определения источника в плагине Javadoc:
источник
Has anyone been able to make javadoc work without having to change the source version to 1.8
javadoc создает ссылки на используемые вами пакеты, например, на классы, описанные в
.../javase/11/docs/api
. Пока ваши комментарии находятся в неназванном модуле, цели - нет, и javadoc не может объединить эти два. Он создает либо файл,package-list
либоelement-list
файл, поэтому вы не можете смешивать безымянные модули (пакеты) с именованными модулями.Я не нашел способа ограничить ссылки, которые пытается создать Javadoc; поэтому вам, возможно, придется использовать модули для вашего собственного проекта. Это кажется мне смешным, просто чтобы сделать Javadoc счастливым. Я полагаю, что это только одна из причин, по которой многие люди придерживаются Java 8.
источник
Существовал значительный разрыв изменений с Java 9 для использования Doclet API
Старый API использует пакет com.sun.javadoc
Вы можете попробовать использовать новый Doclet API, см. Примеры
источник