Maven 项目文档
Maven 项目文档生成(Site + Javadoc + 报告)完全指南(2025 最新版)
一句话总结:
一行命令生成完整项目站点:文档、API、测试报告、依赖分析、代码覆盖率!
一、Maven Site 生命周期
pre-site → site → post-site → site-deploy
| 命令 | 作用 | 
|---|---|
mvn site | 生成站点 → target/site/ | 
mvn site:deploy | 发布到服务器 | 
二、启用 Site(pom.xml 配置)
<project>
  ...
  <build>
    <plugins>
      <!-- Site 插件 -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <version>4.0.0</version>
      </plugin>
      <!-- 项目信息插件 -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <version>3.5.0</version>
      </plugin>
    </plugins>
  </build>
  <!-- 报告插件 -->
  <reporting>
    <plugins>
      <!-- Javadoc -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>3.7.0</version>
        <configuration>
          <source>17</source>
          <encoding>UTF-8</encoding>
          <doclint>all,-missing</doclint>
        </configuration>
      </plugin>
      <!-- 单元测试报告 -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-report-plugin</artifactId>
        <version>3.2.5</version>
      </plugin>
      <!-- 代码覆盖率 -->
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.8.12</version>
      </plugin>
      <!-- 依赖分析 -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <version>3.5.0</version>
      </plugin>
    </plugins>
  </reporting>
</project>
三、生成文档命令
# 1. 生成站点 + 所有报告
mvn clean site
# 2. 查看结果
open target/site/index.html   # macOS
# 或 Windows: start target/site/index.html
四、生成的文档内容(target/site/)
| 文件 | 说明 | 
|---|---|
index.html | 首页 | 
project-info.html | 项目信息(GAV、许可证) | 
dependencies.html | 依赖树 | 
dependency-convergence.html | 依赖冲突 | 
javadoc/ | API 文档 | 
surefire-report.html | 单元测试报告 | 
jacoco/ | 代码覆盖率 | 
project-reports.html | 所有报告入口 | 
五、自定义站点(src/site/)
my-project/
├── src/
│   └── site/
│       ├── site.xml          ← 菜单配置
│       ├── markdown/
│       │   └── README.md     ← 自定义页面
│       └── resources/
│           └── css/style.css
site.xml 示例
<?xml version="1.0" encoding="UTF-8"?>
<project name="My App" xmlns="http://maven.apache.org/DECORATION/1.8.0">
  <bannerLeft>
    <name>My App</name>
    <href>./index.html</href>
  </bannerLeft>
  <body>
    <menu name="Overview">
      <item name="Introduction" href="index.html"/>
      <item name="Quick Start" href="markdown/quickstart.html"/>
    </menu>
    <menu ref="reports"/>
  </body>
</project>
Markdown 页面
<!-- src/site/markdown/quickstart.md -->
# 快速开始
java
public class App {
public static void main(String[] args) {
System.out.println(“Hello Maven Site!”);
}
}
```
---
## 六、Javadoc 单独生成
bash
生成 Javadoc JAR
mvn javadoc:jar
生成聚合 Javadoc(多模块)
mvn javadoc:aggregate
输出:`target/site/apidocs/`
---
## 七、代码覆盖率(JaCoCo)
xml
org.jacoco jacoco-maven-plugin 0.8.12 prepare-agent report test report
运行:
bash
mvn test
open target/site/jacoco/index.html
---
## 八、完整命令速查
| 命令 | 作用 |
|------|------|
| `mvn site` | 生成站点 |
| `mvn site:deploy` | 发布到服务器 |
| `mvn javadoc:jar` | 打包 Javadoc |
| `mvn surefire-report:report` | 仅生成测试报告 |
| `mvn site -DgenerateReports=false` | 只生成自定义页面 |
---
## 九、发布站点(`site:deploy`)
xml
github-pages scm:git:git@github.com:username/repo.git?gh-pages
bash
mvn site:deploy
> **GitHub Pages**:自动发布到 `https://username.github.io/repo`
---
## 十、模板:完整 `pom.xml`(含文档)
xml
org.apache.maven.plugins maven-site-plugin 4.0.0
org.apache.maven.plugins maven-javadoc-plugin 3.7.0 org.apache.maven.plugins maven-surefire-report-plugin 3.2.5 org.jacoco jacoco-maven-plugin 0.8.12
“`
十一、IDEA 集成
- Maven 面板 → 
site→ 双击运行 - 右键 
pom.xml→ Maven → site - 自动打开 
target/site/index.html 
十二、推荐工具
| 工具 | 作用 | 
|---|---|
| Asciidoctor | Markdown → HTML | 
| Doxia | Maven 原生文档 | 
| GitHub Pages | 免费发布 | 
恭喜!你已掌握 Maven 项目文档生成!
下一步推荐
| 方向 | 内容 | 
|---|---|
| GitHub Pages 自动发布 | Actions + site:deploy | 
| Asciidoctor 文档 | .adoc 编写 | 
| Confluence 集成 | 导出 HTML | 
需要 GitHub Actions 自动发布文档脚本?
回复 GitHub Site 立即获取!