我有这个 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 question 。似乎没有明确的答案。我尝试编译提交者答案中链接的项目,看看他是否解决了问题。提交者的项目仍然表现出与我相同的问题。
我尝试在 src/main/java 和 src/main/java/parser 中创建 package-info.java 文件。这似乎行不通。
我尝试搞乱 maven-javadoc-plugins 。我研究了 sourceFileIncludes、includeDependencySources、子包和 dependencySourceIncludes。它们似乎都不起作用。我可能错过了一些东西。
如何解决 Maven 不包含生成 Javadocs 的子包的问题?
最佳答案
看来我已经找到答案了。我将其发布在这里,以便其他遇到相同问题的人可以在这里找到它。
我是如何做到的:我又尝试了 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>
使用您自己的路径进行分组。
我不能百分百确定这是否是正确的答案,但它确实对我来说效果很好。如果其他人有更好的解决方案,请继续发布到此处。
关于java - Maven Javadoc 找不到我的子包 - 'javadoc: warning - No source files for package',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50440011/