# package-renamer **Repository Path**: libinqingfeng/package-renamer ## Basic Information - **Project Name**: package-renamer - **Description**: 一个”强大“的 Java 项目重命名工具,支持批量修改包名、模块前缀、类名和 Maven GroupId,特别适合多模块项目重构 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-01-19 - **Last Updated**: 2026-01-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 📦 Package Renamer

一个强大的 Java 项目重命名工具

批量重命名包名、模块前缀、类名的自动化工具
特别适合 Maven 多模块项目的重构需求

功能特性快速开始使用指南示例

--- ## ✨ 核心功能 - 📦 **批量重命名包名** - 自动替换整个项目的包路径(如:`cn.iocoder.yudao` → `com.udong.synergy`) - 🏷️ **模块前缀重命名** - 统一修改 Maven 模块名称前缀(如:`yudao-*` → `synergy-*`) - 🔧 **GroupId 替换** - 更新 pom.xml 中的项目组 ID - 📝 **类名前缀重命名** - 批量修改 Java 类名前缀(如:`Yudao*` → `Synergy*`) - 🔄 **自动更新依赖** - 自动同步修改 import 语句和配置文件引用 - 🗂️ **文件目录迁移** - 自动移动文件到新的包路径并重命名 - 🧹 **清理空目录** - 自动清理迁移后的空文件夹 - 🎯 **多模块支持** - 完美支持 Maven 聚合项目,递归处理所有子模块 ## 🏗️ 项目结构 ``` src/main/java/com/dong/renamer/ ├── Main.java # 主入口 ├── properties/ │ └── RenamerProperties.java # 配置属性类 ├── scanner/ │ └── PropertiesScanner.java # 交互式配置扫描器 ├── core/ │ ├── ProjectRenamer.java # 项目重命名核心逻辑 │ └── handler/ │ ├── PackageHandler.java # 包名和类文件处理器 │ └── PomHandler.java # Maven POM 文件处理器 └── folder/ ├── handler/ │ └── PackageMoveHandler.java # 包目录移动处理器 └── util/ ├── DirectoryCleaner.java # 目录清理工具 └── DirectoryMover.java # 目录移动工具 ``` ## 🚀 快速开始 ### 前置要求 - Java 8+ - Maven 3.x ### 安装 ```bash # 克隆项目 git clone https://gitee.com/xxd9527/package-renamer.git # 进入项目目录 cd package-renamer # 编译打包 mvn clean package ``` 编译成功后会在 `target` 目录生成 `package-renamer-1.0-SNAPSHOT.jar` 文件。 ### 使用方式 ```bash # 直接运行主类 java -jar target/package-renamer-1.0-SNAPSHOT.jar ``` 程序会引导你输入以下配置: 1. **项目路径** - 需要重命名的项目根目录 2. **旧的模块前缀** - 原模块名前缀(如:yudao) 3. **新的模块前缀** - 新模块名前缀(如:synergy) 4. **旧的包前缀** - 原包名前缀(如:cn.iocoder.yudao) 5. **新的包前缀** - 新包名前缀(如:com.udong.synergy) 6. **旧的项目组ID** - 原 Maven GroupId(如:cn.iocoder.boot) 7. **新的项目组ID** - 新 Maven GroupId(如:com.udong.boot) ## 🔄 工作流程 ```mermaid graph TB A[开始] --> B[读取配置] B --> C[处理 POM 文件] C --> D{存在子模块?} D -->|是| E[递归处理子模块] D -->|否| F[处理包名和类文件] E --> F F --> G[移动文件到新包路径] G --> H[重命名类文件] H --> I[更新配置文件] I --> J[重命名模块目录] J --> K[清理空目录] K --> L[完成] ``` ## 📋 处理范围 ### Java 文件 - ✅ package 声明 - ✅ import 语句 - ✅ 类名、文件名 - ✅ 文件路径移动 ### POM 文件 - ✅ groupId - ✅ artifactId - ✅ module 声明 ### 配置文件 - ✅ application.yml / application.yaml - ✅ application.properties - ✅ META-INF/spring.factories - ✅ META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports ## ⚠️ 重要提示 > **⚠️ 在运行此工具之前,请务必备份您的项目!** > > 本工具会直接修改源代码文件,所有操作不可逆。建议: > - 使用 Git 提交当前状态 > - 或创建完整的项目备份 ## 💡 使用场景 - 🔄 项目重构时批量修改包名 - 🏢 公司/组织名称变更 - 📦 开源项目个性化定制 - 🔀 多个项目合并统一命名规范 - 🎯 Maven 多模块项目批量重命名 ## 🛠️ 技术栈 - **Java 8+** - 编程语言 - **Maven** - 项目构建工具 - **Lombok 1.18.42** - 简化 Java 代码 - **DOM Parser** - XML 解析(处理 POM 文件) ## 🔍 工作原理 1. **扫描项目** - 递归遍历项目目录,识别所有 `.java` 和 `.xml` 文件 2. **解析 POM** - 使用 DOM 解析器处理 Maven POM 文件,更新 groupId、artifactId 和 module 3. **处理 Java 文件** - 逐行解析 Java 源码,替换 package 声明、import 语句和类名 4. **移动文件** - 根据新的包名结构移动 Java 文件到对应目录 5. **重命名文件** - 根据新的类名前缀重命名 Java 文件 6. **更新配置** - 处理 application.yml、properties 和 Spring 配置文件 7. **清理目录** - 删除迁移后的空目录 8. **重命名模块** - 重命名 Maven 模块目录名 ## 📝 配置说明 ### RenamerProperties 配置项 | 配置项 | 说明 | 示例 | |--------|------|------| | projectPath | 项目根路径 | `D:\IdeaProjects\my-project` | | oldModulePrefix | 旧模块前缀 | `yudao` | | newModulePrefix | 新模块前缀 | `synergy` | | oldPackagePrefix | 旧包名前缀 | `cn.iocoder.yudao` | | newPackagePrefix | 新包名前缀 | `com.udong.synergy` | | oldProjectGroupId | 旧 GroupId | `cn.iocoder.boot` | | newProjectGroupId | 新 GroupId | `com.udong.boot` | | oldClassNamePrefix | 旧类名前缀 | `Yudao` | | newClassNamePrefix | 新类名前缀 | `Synergy` | 所有配置项均为可选,工具会根据是否配置来决定是否执行对应的重命名操作。 ## 🎯 执行示例 假设有以下项目结构: ``` yudao-project/ ├── pom.xml ├── yudao-module-system/ │ ├── pom.xml │ └── src/main/java/cn/iocoder/yudao/module/system/ └── yudao-module-infra/ ├── pom.xml └── src/main/java/cn/iocoder/yudao/module/infra/ ``` 运行工具后将变为: ``` synergy-project/ ├── pom.xml ├── synergy-module-system/ │ ├── pom.xml │ └── src/main/java/com/udong/synergy/module/system/ └── synergy-module-infra/ ├── pom.xml └── src/main/java/com/udong/synergy/module/infra/ ``` ## ❓ 常见问题 ### Q: 工具支持哪些文件类型? A: 支持 `.java`、`pom.xml`、`.yml`、`.yaml`、`.properties`、`.factories` 和 `.imports` 文件。 ### Q: 是否支持 Gradle 项目? A: 目前仅支持 Maven 项目,Gradle 支持计划在后续版本中添加。 ### Q: 如果重命名失败怎么办? A: 请确保提前备份项目。如遇问题,可恢复备份后调整配置重试。 ### Q: 能否只重命名包名而不修改类名? A: 可以。工具会根据配置项是否为空来决定执行哪些操作,不配置类名前缀即可。 ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! 如果这个项目对你有帮助,请给个 ⭐️ Star 支持一下! ## 📄 许可证 本项目采用 MIT 许可证 - 详见 LICENSE 文件。 ## 📧 联系方式 - 提交 Issue:[Issues](https://gitee.com/your-username/package-renamer/issues) - 贡献代码:[Pull Requests](https://gitee.com/your-username/package-renamer/pulls) --- **注意**:本工具会直接修改源文件,使用前请确保已备份!