coder-common-thin-backend/script/README.md
Leo aea6426fa3 chore: 添加picture文件夹到.gitignore并从仓库中移除
- 在.gitignore中添加picture/忽略规则
- 从git索引中移除已上传的头像文件
- 避免将来头像文件被误提交到仓库
2025-07-07 15:18:51 +08:00

6.1 KiB
Raw Blame History

项目重构自动化脚本

这是一套用于Maven项目重构的自动化脚本可以批量修改项目的包名、groupId、artifactId、模块名称等让你轻松地将一个项目模板改造为新的项目。

功能特性

🚀 全自动重构: 一键修改项目中的所有相关配置 📦 多文件支持: 支持修改POM文件、Java源码、XML映射文件、配置文件 🗂️ 目录重构: 自动重命名Java包目录和模块目录 🔧 可视化界面: 友好的命令行交互界面 💾 安全备份: 可选的项目备份功能 批量处理: 支持配置文件批量重构

文件说明

script/
├── project-refactor.sh      # 主重构脚本(交互式)
├── batch-refactor.sh        # 批量重构脚本(配置文件)
├── refactor-config.example  # 配置文件模板
└── README.md               # 使用说明(本文件)

使用方法

方法一:交互式重构(推荐新手)

# 进入脚本目录
cd script

# 运行交互式重构脚本
./project-refactor.sh

脚本会引导你输入以下信息:

  • 项目根目录路径
  • 旧的 GroupIdorg.leocoder.thin
  • 旧的 ArtifactIdcoder-common-thin-backend
  • 旧的模块前缀coder-common-thin
  • 新的 GroupIdorg.leocoder.course
  • 新的 ArtifactIdcoder-course-backend
  • 新的模块前缀coder-course
  • 数据库名称(可选)

方法二:配置文件批量重构(推荐批量处理)

# 1. 复制配置文件模板
cp refactor-config.example my-project.conf

# 2. 编辑配置文件
vim my-project.conf

# 3. 运行批量重构
./batch-refactor.sh my-project.conf

配置文件格式

# 项目基本信息
PROJECT_DIR="/path/to/your/project"

# 旧配置
OLD_GROUP_ID="org.leocoder.thin"
OLD_ARTIFACT_ID="coder-common-thin-backend"
OLD_MODULE_PREFIX="coder-common-thin"
OLD_DATABASE_NAME="coder-common-thin"

# 新配置
NEW_GROUP_ID="org.leocoder.course"
NEW_ARTIFACT_ID="coder-course-backend"
NEW_MODULE_PREFIX="coder-course"
NEW_DATABASE_NAME="coder-course"

# 其他选项
CREATE_BACKUP="true"      # 是否创建备份
AUTO_CONFIRM="false"      # 是否自动确认(跳过确认步骤)

重构内容

脚本会自动处理以下内容:

1. POM文件修改

  • 修改根POM和所有子模块的 <groupId>
  • 修改根POM和所有子模块的 <artifactId>
  • 修改 <name> 标签
  • 修改 <module> 引用
  • 修改依赖引用中的groupId和artifactId

2. Java源码修改

  • 修改所有Java文件的 package 声明
  • 修改所有Java文件的 import 语句
  • 修改注解中的包名引用(如@SpringBootApplication的scanBasePackages

3. XML映射文件

  • 修改MyBatis Mapper文件的 namespace
  • 修改 resultType 中的包名引用

4. 配置文件

  • 修改YAML/Properties文件中的包扫描配置
  • 修改数据库连接配置中的数据库名
  • 修改文件路径配置

5. 目录结构重构

  • 重命名Java包目录结构src/main/java/com/old/package → src/main/java/com/new/package
  • 重命名模块目录old-module-name → new-module-name
  • 重命名SQL文件

使用示例

示例1从通用框架改造为选课系统

# 交互式输入
./project-refactor.sh

# 输入示例:
# 项目路径: /Users/leocoder/my-project
# 旧的 GroupId: org.leocoder.thin
# 旧的 ArtifactId: coder-common-thin-backend
# 旧的模块前缀: coder-common-thin
# 新的 GroupId: org.leocoder.course
# 新的 ArtifactId: coder-course-backend
# 新的模块前缀: coder-course

示例2批量处理多个项目

# 为选课系统创建配置
cat > course-system.conf << EOF
PROJECT_DIR="/Users/leocoder/course-project"
OLD_GROUP_ID="org.leocoder.thin"
OLD_ARTIFACT_ID="coder-common-thin-backend"
OLD_MODULE_PREFIX="coder-common-thin"
NEW_GROUP_ID="org.leocoder.course"
NEW_ARTIFACT_ID="coder-course-backend"
NEW_MODULE_PREFIX="coder-course"
CREATE_BACKUP="true"
AUTO_CONFIRM="false"
EOF

# 为库存系统创建配置
cat > inventory-system.conf << EOF
PROJECT_DIR="/Users/leocoder/inventory-project"
OLD_GROUP_ID="org.leocoder.thin"
OLD_ARTIFACT_ID="coder-common-thin-backend"
OLD_MODULE_PREFIX="coder-common-thin"
NEW_GROUP_ID="org.leocoder.inventory"
NEW_ARTIFACT_ID="coder-inventory-backend"
NEW_MODULE_PREFIX="coder-inventory"
CREATE_BACKUP="true"
AUTO_CONFIRM="false"
EOF

# 执行批量重构
./batch-refactor.sh course-system.conf
./batch-refactor.sh inventory-system.conf

注意事项

⚠️ 重要提醒

  1. 备份项目: 重构前强烈建议备份整个项目
  2. 关闭IDE: 重构期间请关闭IDE避免文件锁定
  3. 检查结果: 重构完成后请检查项目能否正常编译运行
  4. 更新配置: 检查IDE的运行配置是否需要更新

重构后需要手动检查的项目

  • IDE中的运行配置主类路径
  • 数据库连接配置
  • 第三方服务配置
  • 测试用例
  • 文档更新

故障排除

常见问题

Q: 脚本执行后项目无法启动? A: 检查IDE的运行配置确保主类路径已更新为新的包名。

Q: 某些文件没有被修改? A: 检查文件是否在target目录下脚本会跳过编译输出目录。

Q: 包名格式验证失败? A: 确保包名符合Java命名规范只能包含字母、数字、下划线和点号。

Q: 权限被拒绝? A: 确保脚本有执行权限:chmod +x *.sh

调试技巧

  1. 查看详细日志: 脚本会显示处理的文件信息
  2. 检查备份: 如果出现问题,可以从备份恢复
  3. 分步执行: 可以注释掉脚本中的某些步骤来分步调试

扩展功能

你可以根据需要扩展脚本功能:

  1. 添加新的文件类型: 在相应的函数中添加处理逻辑
  2. 自定义替换规则: 修改sed命令的正则表达式
  3. 集成到CI/CD: 将脚本集成到自动化流水线中

贡献

如果你发现bug或有改进建议请提交issue或pull request。

许可证

MIT License


作者: Leocoder
版本: 1.0
最后更新: 2025-07-06