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

标签 java maven javadoc maven-javadoc-plugin

我有这个 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/

相关文章:

java - if 语句在 Java 中无法正确计算 boolean 值?

java - 如何在jsp中显示java中的ArrayList项目?

java - 查找 ArrayList 中的最大字符串

java - Travis-CI可以自动生成并推送JavaDoc吗?

java - Vaadin 10 maven pom 文件

javadoc - 如何链接到 javadoc.io 上的类/方法的最新版本

java - 如何访问注释中的属性值?

eclipse - 检查 $M2_HOME 环境变量和 mvn 脚本匹配

java - 为未重写的继承方法生成 JavaDoc

java - 如何写出好的 javadoc 注释?