在 Maven 项目中,可以通过集成 数据库文档生成工具(如 screw-maven-plugin
、mybatis-generator
或 liquibase
)来自动生成数据库文档。以下是使用 screw-maven-plugin
(推荐)的完整配置步骤:
1. 添加插件配置到 pom.xml
将以下配置添加到 <build>
→ <plugins>
部分:
<build>
<plugins>
<!-- 数据库文档生成插件 -->
<plugin>
<groupId>cn.smallbun.screw</groupId>
<artifactId>screw-maven-plugin</artifactId>
<version>1.0.5</version>
<dependencies>
<!-- 数据库驱动(以MySQL为例) -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.32</version>
</dependency>
<!-- HikariCP连接池 -->
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>3.4.5</version>
</dependency>
</dependencies>
<configuration>
<!-- 数据库连接配置 -->
<username>${db.username}</username>
<password>${db.password}</password>
<jdbcUrl>jdbc:mysql://${db.host}:${db.port}/${db.name}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false</jdbcUrl>
<driverClassName>com.mysql.cj.jdbc.Driver</driverClassName>
<!-- 文档生成配置 -->
<fileType>HTML</fileType> <!-- 可选:HTML | WORD | MD -->
<fileName>数据库文档</fileName>
<title>项目数据库设计</title>
<description>自动生成的数据库文档</description>
<version>${project.version}</version>
<openOutputDir>true</openOutputDir> <!-- 生成后是否打开目录 -->
<!-- 忽略表(可选) -->
<ignoreTablePrefix>temp_,test_</ignoreTablePrefix>
</configuration>
<executions>
<execution>
<phase>compile</phase> <!-- 绑定到编译阶段 -->
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
2. 配置数据库信息
在 pom.xml
或 settings.xml
中定义数据库变量(避免明文密码):
方式一:在 pom.xml
的 <properties>
中配置
<properties>
<db.host>localhost</db.host>
<db.port>3306</db.port>
<db.name>your_database</db.name>
<db.username>root</db.username>
<db.password>123456</db.password>
</properties>
方式二:在 settings.xml
中配置(更安全)
<settings>
<profiles>
<profile>
<id>db-config</id>
<properties>
<db.password>ENC(加密后的密码)</db.password>
</properties>
</profile>
</profiles>
<activeProfiles>
<activeProfile>db-config</activeProfile>
</activeProfiles>
</settings>
3. 执行生成命令
运行以下 Maven 命令生成文档:
mvn compile # 插件绑定到compile阶段,会自动触发
# 或单独执行插件
mvn screw:run
生成的文档默认输出到:
target/doc/数据库文档.{html|md|docx}
5. 高级配置选项
参数 | 说明 |
---|---|
fileType | 输出格式:HTML (默认)、WORD 、MD |
ignoreTablePrefix | 忽略表前缀(如 test_ ) |
produceType | 模板引擎:freemarker (默认)或 velocity |
design | 自定义描述信息(支持HTML标签) |
6. 注意事项
- 数据库兼容性
- 支持 MySQL/Oracle/PostgreSQL/SQL Server 等主流数据库(需正确配置驱动)。
- 密码安全
- 生产环境建议使用 Maven 密码加密(官方指南)。
- 多模块项目
- 在父 POM 中配置插件,子模块通过
<inherited>true</inherited>
继承。
- 在父 POM 中配置插件,子模块通过
替代方案对比
工具 | 优点 | 缺点 |
---|---|---|
screw-maven-plugin | 轻量、支持多格式、中文友好 | 仅生成文档,无数据库变更管理 |
mybatis-generator | 可生成代码+文档 | 配置复杂,文档功能较弱 |
liquibase | 支持数据库版本管理 | 文档生成需额外插件 |
推荐选择 screw-maven-plugin
快速生成简洁的数据库文档!