第一章、 项目改造准备工作
1.1 保留:日志,切面、Util、配置等
将旧项目 rpm 改名为新项目 itm,对整个项目的构建配置、包结构、资源文件进行系统性调整。
- 保留:日志配置(Logback/Log4j2)、切面类(AOP)、业务代码逻辑、数据库配置等核心功能代码。
1.2 备份项目
在动手之前,务必先对原项目做一次完整备份(复杂一份),或者使用 Git 创建分支:这样即使改坏了,也能随时回退。
Git 仓库地址:克隆到新的 git 仓库,不要 push 回旧项目仓库
bash
git checkout -b rename-rpm-to-itm
2. 修改 Maven 配置(pom.xml)
2.1 修改项目坐标
打开根目录下的 pom.xml,找到 <project> 标签下的基本信息,将 rpm 改为 itm:
xml
<!-- 修改前 -->
<groupId>com.example</groupId>
<artifactId>rpm</artifactId>
<version>1.0.0</version>
<name>rpm</name>
<description>RPM Project</description>
<!-- 修改后 -->
<groupId>com.example</groupId>
<artifactId>itm</artifactId>
<version>1.0.0</version>
<name>itm</name>
<description>ITM Project</description>
注意 :artifactId 是 Maven 识别项目身份的核心标识,必须修改。name 和 description 是描述性信息,建议同步修改以保持一致性。
2.2 检查父 POM 和子模块
如果你的项目是多模块结构(有父 POM 和子模块),需要同步修改:
xml
<!-- 父 POM 中的 modules 声明 -->
<modules>
<module>itm-core</module>
<module>itm-web</module>
<module>itm-service</module>
</modules>
同时,每个子模块的 pom.xml 中,<parent> 标签里的 <artifactId> 也要改为新的父项目名称:
xml
<parent>
<groupId>com.example</groupId>
<artifactId>itm</artifactId>
<version>1.0.0</version>
<relativePath>../pom.xml</relativePath>
</parent>
2.3 检查依赖引用
如果项目内部模块之间存在相互依赖,也要同步修改:
xml
<!-- 修改前 -->
<dependency>
<groupId>com.example</groupId>
<artifactId>rpm-core</artifactId>
<version>1.0.0</version>
</dependency>
<!-- 修改后 -->
<dependency>
<groupId>com.example</groupId>
<artifactId>itm-core</artifactId>
<version>1.0.0</version>
</dependency>
2.4 修改打包配置
如果 pom.xml 中有 <build> 配置,检查最终打包文件名:
xml
<build>
<finalName>itm</finalName>
<!-- 或 -->
<finalName>${project.artifactId}</finalName>
</build>
这样打包出来的 JAR/WAR 文件名就会是 itm.jar 或 itm.war。
2.5 修改内容:
在 pom.xml 中,除了坐标信息,以下内容也需要同步修改:
xml
<!-- 项目描述信息 -->
<name>itm</name>
<description>ITM Project</description>
<url>https://itm.example.com</url>
- properties 节点 :项目自定义属性(如版本号、编码、镜像仓库地址等),若包含
rpm字样需同步替换。 - plugin 配置 :
maven-jar-plugin的finalName、docker-maven-plugin的镜像名称等,确保打包产物和镜像名称为itm。
3. 修改代码层面
3.1 修改 Java 包名
在 IDEA 中,右键点击根包名(如 com.example.rpm),选择 Refactor → Rename ,将 rpm 改为 itm。IDEA 会自动更新所有引用该包的 Java 文件。
注意:使用 IDEA 的 Refactor 功能而不是手动逐个修改,可以避免遗漏 import 语句。
3.2 修改内容:
代码层面除了包名,以下内容也常包含旧项目名称,需要逐一排查:
java
// 项目内常量
public static final String PROJECT_NAME = "itm";
public static final String APP_NAME = "itm";
// 自定义异常、返回体打印的项目标识
// 定时任务、线程池名称前缀
threadFactory.setNamePrefix("itm-service-");
// RabbitMQ/Kafka 消息队列队列名、topic 名称
// Redis key 缓存前缀
redisKeyPrefix = "itm:";
3.3 检查切面类中的包引用
你的切面类(AOP)中如果有 @Pointcut 表达式指向具体的包路径,需要同步修改:
java
// 修改前
@Pointcut("execution(* com.example.rpm.service.*.*(..))")
// 修改后
@Pointcut("execution(* com.example.itm.service.*.*(..))")
3.4 修改内容:
启动类(@SpringBootApplication 注解的类)的包名和类名如果包含 rpm,也需要修改:
java
// 修改前
package com.example.rpm;
@SpringBootApplication
public class RpmApplication {
public static void main(String[] args) {
SpringApplication.run(RpmApplication.class, args);
}
}
// 修改后
package com.example.itm;
@SpringBootApplication
public class ItmApplication {
public static void main(String[] args) {
SpringApplication.run(ItmApplication.class, args);
}
}
此外,以下注解中的包路径或名称也容易遗漏,需同步检查:
java
@ComponentScan("com.example.itm")
@MapperScan("com.example.itm.mapper")
@ConditionalOnProperty(name = "itm.enabled", havingValue = "true")
@CacheNames("itm:cache")
3.5 怎么修改IDEA左上角项目名称
修改了pom文件和文件路径的项目名字后,IDEA左上角项目名称没有变化。
点击Project Structure
修改project name即可
.idea 文件夹 + xxx.iml 文件能不能删
1、.idea 文件夹
✅ 可以删除,安全,不会损坏你的项目代码
作用:IntelliJ‑IDEA 的本地配置缓存:模块设置、运行配置、索引、IDE 布局等,只存在你电脑,不属于项目源码。
删除后果:
IDE 下次打开项目会重新生成整套 .idea
之前配好的运行参数、SDK、IDE 视图布局丢失
Git 建议:不要提交 .idea,一般加到 .gitignore
2、xxx.iml 文件
✅ 也可以删掉
iml = IDEA 模块配置文件,标记源码根目录、依赖。删掉打开项目后 IDEA 会自动重建。
如果你是 Maven 项目 (pom.xml):
iml、.idea 全部删掉,然后:
IDEA 重新打开文件夹
右键 pom.xml → Add as Maven Project
即可恢复完整项目。
4.配置文件
3.1 修改内容:
检查 src/main/resources 下的配置文件:
application.yml 或 application.properties:
yaml
# 修改前
spring:
application:
name: rpm
redis:
key-prefix: rpm:
# 修改后
spring:
application:
name: itm
redis:
key-prefix: itm:
需要同步修改的配置项包括:
- 端口号
server.port(避免和旧项目冲突) - 静态资源、模板文件内写死的项目名称
- 文件上传下载存储路径
- nacos 注册中心:命名空间、dataId、group
- Redis 数据库序号、key 统一前缀
- 数据库:不要连旧项目数据库
- 定时任务、业务开关配置项
- 跨域、白名单、业务硬编码 IP
- actuator 监控端点、info 信息
bootstrap.yml(nacos 项目很容易忘记改 bootstrap):
yaml
# 修改前
spring:
application:
name: rpm
# 修改后
spring:
application:
name: itm
日志路径、日志文件名、logback-spring.xml 或 log4j2.xml:
xml
<!-- 修改前 -->
<property name="LOG_FILE" value="./logs/rpm.log"/>
<!-- 修改后 -->
<property name="LOG_FILE" value="./logs/itm.log"/>
5 外部配置
5.1 修改内容:
外部配置和部署相关文件也需要同步修改,避免遗漏:
bash
# IDEA:重命名根模块,检查 .idea 文件夹(删掉重新导入最稳)
# 数据库连接指向全新库,没有共用旧库
# Nacos 服务名称不和旧服务重名
# Dockerfile:jar 包文件名(对应 pom finalName)
# shell 启动脚本 .sh:java -jar itm-xxx.jar
# k8s yaml、helm 配置、容器名称、镜像名
# Jenkins 流水线脚本