Javadoc завершается с ошибкой при наличии импорта в модуле-info.javaJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Javadoc завершается с ошибкой при наличии импорта в модуле-info.java

Сообщение Anonymous »


Иногда я создаю свой собственный javadoc модулей OpenJDK, чтобы настроить команду javadoc с моими любимыми параметрами. Недавно я пытался сделать это для OpenJDK 20, но получил странные ошибки «модуль не найден» для некоторых модулей. Я связал проблему со следующей (почти) минимальной командой, например. для модуля java.management:

.../jdk-20.0.2/bin/javadoc -sourcepath .../jdk-jdk-20-ga/src/java.management/share/classes -subpackages com:java:javax: солнце --модуль java.management -verbose Это приводит к:

[начался анализ SimpleFileObject[.../jdk-jdk-20-ga/src/java.management/share/classes/module-info.java]] [анализ завершен 22 мс] ошибка: модуль java.management не найден в исходном пути 1 ошибка Итак, я проверил .../java.management/share/classes/module-info.java, и начиная с OpenJDK 20 он содержит импорт и @ParticipatesInPreview аннотация:

import jdk.internal.javac.ParticipatesInPreview; /** ... */ @ParticipatesInPreview модуль java.management { Если я удалю эту аннотацию и соответствующий импорт, все будет работать так, как ожидалось. Основная проблема, по-видимому, заключается в импорте, а не в аннотации. Для других модулей у меня возникла аналогичная ошибка только при наличии импорта, а не аннотации.

Мой вопрос: как я могу настроить вызов javadoc для успешного выполнения, если импорт (и, возможно, @ParticipatesInPreview) присутствует?

Я уже поигрался с некоторыми вариантами, например. установите -source или --release с помощью --enable-preview или добавьте модуль jdk.compiler через < code>--add-module, поскольку в этом модуле выполняется импорт. До сих пор ничего из того, что я пробовал, не помогло.

Обновление: Поскольку несколько дней назад JDK 21 достиг статуса общедоступной версии, я повторил это в JDK 21, и проблема такая же, как и в 20. Однако java.management больше не затрагивается, поскольку импорт удален. AFAICT no java.* Файл module-info.java содержит импорт в JDK 21, но проблему все равно можно воспроизвести, например. в jdk.compiler:

.../jdk-21/bin/javadoc -sourcepath .../jdk-jdk-21-ga/src/jdk.compiler/share/classes -subpackages com:jdk:sun --module jdk.compiler -verbose [начался анализ SimpleFileObject[.../jdk-jdk-21-ga/src/jdk.compiler/share/classes/module-info.java]] [анализ завершен 38 мс] ошибка: модуль jdk.compiler не найден в исходном пути 1 ошибка Как и раньше, удаление импорта помогает.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»