Maven Javadoc未能找到我的子包 - 'javadoc:warning - 没有包的源文件'

时间:2018-05-20 22:34:09

标签: 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,subpackages和dependencySourceIncludes。他们似乎都没有工作。我可能错过了一些东西。

如何修复Maven的这个问题,不包括生成Javadocs的子包?

1 个答案:

答案 0 :(得分:0)

看起来我找到了答案。我在这里发帖,以便其他有同样问题的人可以在这里找到它。

我是如何做到的:我又在sourceFileIncludesmaven-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>并使用自己的路径。

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