У меня есть небольшой проект со следующей структурой:
pom.xml
src/main/java/
module-info.java
de.ps.pl.te/
package-info.java
TE.java
src/test/java/
de.ps.pl.te.test/
package-info.java
TETests.java
Также в моем maven pom я определил плагин javadoc следующим образом:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<show>protected</show>
<failOnError>false</failOnError>
</configuration>
</plugin>
Теперь я получил несколько странных выводов во время работы
mvn clean install site
[INFO] Создание отчета "Javadoc" --- maven-javadoc-plugin: 3.1.0: aggregate-no-fork
[ОШИБКА] Ошибка при получении ссылки: D: \ work \ eclipse \ java \ FritzBox \ phplib \ target \ javadoc-bundle-options. Игнорировал это.
[...]
[INFO] Создание отчета "Test Javadoc" --- maven-javadoc-plugin: 3.1.0: test-aggregate-no-fork
[ОШИБКА] Ошибка при получении ссылки: D: \ work \ eclipse \ java \ FritzBox \ phplib \ target \ javadoc-bundle-options. Игнорировал это.
Загрузка исходных файлов для пакета de.ps.pl.te.test ...
1 ошибка
[ОШИБКА] Ошибка при создании отчета Javadoc:
Код выхода: 2 - javadoc: ошибка - Нет исходных файлов для пакета de.powerstat.phplib.templateengine.test
Командная строка была: [...] javadoc.exe @options @ packages
Обратитесь к сгенерированным файлам Javadoc в директории [...].
org.apache.maven.reporting.MavenReportException:
Код выхода: 2 - javadoc: ошибка - Нет исходных файлов для пакета de.ps.pl.te.test
Командная строка была: [...] javadoc.exe @options @ packages
Обратитесь к сгенерированным файлам Javadoc в директории '[...] \ target \ site \ testapidocs'.
at org.apache.maven.plugins.javadoc.AbstractJavadocMojo.executeJavadocCommandLine (AbstractJavadocMojo.java:5761)
at org.apache.maven.plugins.javadoc.AbstractJavadocMojo.executeReport (AbstractJavadocMojo.java:2148)
at org.apache.maven.plugins.javadoc.TestJavadocReport.executeReport (TestJavadocReport.java:162)
[...]
Я изучил следующий вопрос:
Но моя проблема, кажется, другая и основана на модульности Java.
Итак, вопрос в том, как это исправить - или это больше, чтобы сделать отчет об ошибке?
РЕДАКТИРОВАТЬ 1
Теперь я попробовал с JDK 11.0.3 и JDK 12.0.1 - мне не удалось загрузить OpenJDK из-за проблем с сертификатом оракула и сервером - поэтому я не смог протестировать ранний доступ к OpenJDK 13.
Интересным моментом является то, что сообщение об ошибке незначительно отличается при использовании версии 11 / 12.
В JDK 11 ошибка:
Код выхода: 1 - Project \ src \ main \ java \ module-info.java: 12: ошибка: модуль не найден: org.apache.logging.log4j
требуется org.apache.logging.log4j;
С JDK 12 ошибка:
Код выхода: 1 - ошибка: модуль не найден: de.powerstat.phplib.templateengine
Остальная часть сообщения остается прежней.
Также я нашел сообщение об ошибке, которое может быть здесь:
Javadoc не поддерживает информацию о модуле в мульти-релиз-банке
Также я безуспешно пытался исключить module-info.java:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<show>protected</show>
<failOnError>false</failOnError>
<sourceFileExcludes>
<sourceFileExclude>**/module-info.java</sourceFileExclude>
</sourceFileExcludes>
</configuration>
</plugin>
РЕДАКТИРОВАТЬ 2
В пределах target \ site \ apidocs я могу найти следующие (сгенерированные maven?) Файлы:
- argfile
- javadoc.bat
- опции
- пакеты
argfile:
'D:/TemplateEngine/src/main/java/de/ps/pl/te/package-info.java'
'D:/TemplateEngine/src/main/java/de/ps/pl/te/TemplateEngine.java'
javadoc.bat:
D:\Programme\Java\jdk-11.0.3\bin\javadoc.exe @options @argfile
пакеты:
de.powerstat.phplib.templateengine
de.powerstat.phplib.templateengine
Параметры:
--module-path
'C:/.m2/repository/org/apache/logging/log4j/log4j-api/2.11.2/log4j-api-2.11.2.jar;C:/.m2/repository/org/apache/logging/log4j/log4j-core/2.11.2/log4j-core-2.11.2.jar'
-sourcepath
'D:/TemplateEngine/src/main/java'
-d
'D:/TemplateEngine/target/site/apidocs'
-linkoffline
'https://docs.oracle.com/en/java/javase/11/docs/api' 'D:/TemplateEngine/target/javadoc-bundle-options'
[Removed uninteresting parts like encoding, title etc.]
Для случая, когда кто-то хотел бы попробовать это сам, я сделал весь проект доступным на GitHub