Maven Javadoc 找不到我的子包 - 'javadoc: warning - No source files for package'



我有这个Maven项目。我正在尝试让Maven在发布mvn包时自动生成JavaDocs。整个项目编译和打包都很好。它为主包中的所有 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>

我尝试寻找解决方案。我发现的最接近的是这个StackOverflow问题。似乎没有明确的答案。我尝试编译提交者答案中链接的项目,看看他是否解决了它。提交者的项目仍然表现出与我相同的问题。

我尝试在 src/main/java 和 src/main/java/parser 中创建 package-info.java 文件。这似乎行不通。

我试着弄乱maven-javadoc-plugins。我研究了sourceFileInclude,includeDependencySources,subpackages和dependencySourceInclude。它们似乎都不起作用。我可能错过了什么。

如何解决 Maven 不包含生成 Javadocs 的子包的问题?

看起来我已经找到了答案。我在这里发布它,以便其他遇到相同问题的人可以在这里找到它。

我是如何做到的:我又一次尝试了 maven-javadoc-plugins 中的 sourceFileInclude 标签。我在项目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文档。我想它也适用于其他目录或更深的目录。如果没有,您可以使用自己的路径在<sourceFileIncludes>组下添加另一个<sourceFileInclude>

我不是百分百确定这是否是正确的答案,但它对我来说确实很好。如果其他人有更好的解决方案,请继续在此处发布。

相关内容

最新更新