Maven Javadoc не смог найти мой подпакет - 'javadoc: предупреждение - нет исходных файлов для пакета'
У меня есть этот проект Maven. Я пытаюсь, чтобы Maven автоматически генерировал JavaDocs при запуске пакета mvn. Весь проект компилируется и упаковывается просто отлично. Он сгенерировал документацию для всех моих классов Java, которые просто в основном пакете, но не сгенерировал документацию для каких-либо классов в подпакетах. Он сказал, что не может их найти.
Точное сообщение об ошибке:
[WARNING] javadoc: warning - No source files for package parser
Я структурировал свой проект так:
pom.xml
src (directory)
main (directory)
java (directory)
parser (directory)
Parser.java
StringParser.java
ByteParser.java
Main.java
Reader.java
Классы Main.java и Reader.java имеют пакет package com.personal.reader; Классы в каталоге парсера имеют пакет package com.personal.reader.parser; Похоже, что в сообщении об ошибке говорилось, что он не может найти "com.personal.reader.parser".
Мой pom.xml выглядит так: (удалил некоторые вещи для краткости)
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.personal.reader</groupId>
<artifactId>Reader</artifactId>
<packaging>jar</packaging>
<version>0.1.0</version>
<name>Reader</name>
<url>http://maven.apache.org</url>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<outputDirectory>docs</outputDirectory>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Я пытался искать решения. Ближайшая вещь, которую я нашел, это вопрос Stackru. Там, кажется, нет четкого ответа. Я попытался скомпилировать проект, который был связан в ответе автора, чтобы увидеть, решил он это или нет. В проекте автора все еще были те же проблемы, что и у меня.
Я попытался создать файл package-info.java в src/main/java и src/main/java/parser. Это, казалось, не сработало.
Я попытался возиться с Maven-Javadoc-плагинов. Я посмотрел на sourceFileIncludes, includeDependencySources, subpackages и dependencySourceInclude. Ни один из них, кажется, не работает. Я мог что-то пропустить.
Как я могу исправить эту проблему Maven, не включая подпакет для создания Javadocs?
1 ответ
Похоже, я нашел свой ответ. Я публикую это здесь, чтобы другие люди, у которых была такая же проблема, могли найти это здесь.
Как я это сделал: у меня был еще один переход на тег sourceFileIncludes в maven-javadoc-plugins. Я добавил это в плагин в проекте pom.xml
,
<sourceFileIncludes>
<sourceFileInclude>**/*.java</sourceFileInclude>
</sourceFileIncludes>
Весь плагин в проекте pom.xml
выглядит так:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<outputDirectory>docs</outputDirectory>
<sourceFileIncludes>
<sourceFileInclude>**/*.java</sourceFileInclude>
</sourceFileIncludes>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
Он успешно сгенерировал документы Javadocs на классах в каталоге парсера. Я предполагаю, что это также будет работать с другими каталогами или более глубокими каталогами. Если это не так, вы можете просто добавить еще <sourceFileInclude>
под <sourceFileIncludes>
группа со своим собственным путем.
Я не уверен на сто процентов, если это правильный ответ, но он, безусловно, работает хорошо для меня. Если у кого-то есть лучшее решение, пожалуйста, отправьте его здесь.