You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Maven Javadoc无法识别子包:提示“No source files for package”

解决Maven Javadoc不生成子包文档的问题

首先,咱们得揪出核心问题:你的源文件目录结构和Java包声明完全不匹配,这才是javadoc找不到子包的根本原因。

Java有个硬性规则:源文件的目录层级必须和包声明一一对应。比如:

  • 声明package com.personal.reader;的类,必须放在src/main/java/com/personal/reader/目录下
  • 声明package com.personal.reader.parser;的类,必须放在src/main/java/com/personal/reader/parser/目录下

但看你的项目结构,Main.java和Reader.java直接放在src/main/java/根目录下,parser目录也直接挂在src/main/java/下面,这和你代码里的包声明完全对不上,javadoc自然找不到子包的源文件。

修复步骤:

1. 修正项目目录结构(最关键)

按照包名层级重新整理你的文件:

pom.xml
src/
  main/
    java/
      com/
        personal/
          reader/
            Main.java
            Reader.java
            parser/
              Parser.java
              StringParser.java
              ByteParser.java

2. (可选)增强Javadoc插件配置(确保扫描所有包)

如果修正目录后还有问题,可以在maven-javadoc-plugin的配置里明确指定要包含的包,避免遗漏:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-javadoc-plugin</artifactId>
  <version>3.0.0</version>
  <configuration>
    <outputDirectory>docs</outputDirectory>
    <!-- 明确指定主包和子包,用逗号分隔 -->
    <packages>com.personal.reader,com.personal.reader.parser</packages>
    <!-- 或者用通配符匹配com.personal.reader下的所有子包 -->
    <!-- <packages>com.personal.reader.*</packages> -->
  </configuration>
  <executions>
    <execution>
      <id>attach-javadocs</id>
      <goals>
        <goal>jar</goal>
      </goals>
    </execution>
  </executions>
</plugin>

3. 验证修复

执行mvn clean package命令,现在javadoc应该能正确识别所有包的源文件,生成包含子包的完整文档了。

之前你尝试的package-info.java、sourceFileIncludes等配置,都解决不了目录结构不匹配的核心问题,先把目录调整正确,问题基本就能解决。

内容的提问来源于stack exchange,提问作者Silence

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:14:36