利用IDEA工具修改Maven多模块项目标识包名全过程记录

 更新时间:2022年09月29日 14:56:06   作者:追寻上飞  
当我们为甲方服务提供软件开发服务时,需要按照甲方的要求去修改软件的标识,对于Maven项目来说就对应着groupId,一般地写对方公司的域名,如com.example,接下来通过本文给大家分享IDEA修改Maven多模块项目标识包名,感兴趣的朋友一起看看吧

一、背景

当我们为甲方服务提供软件开发服务时,需要按照甲方的要求去修改软件的标识,对于Maven项目来说就对应着groupId,一般地写对方公司的域名,如com.example。因此,项目中使用到的原来的代码需要赋予其新的标识。

二、具备的能力

2.1 IDEA

IDEA的版本为2020.2。

  • IDEA的全文检索,快捷键 Ctrl + Shift + R利用该功能可以查找和修改作用域为整个项目的相关字符串。
  • 文件夹迁移功能,move命令
    项目的包对应着操作系统的文件,如com.example对应着com\example,因此修改包名其实就是把文件迁移到另一个文件夹下。

2.2 Maven多模块项目

一般地,Maven多模块项目的包名packagegroupId保持一致,这样对文件的配置十分有利。

三、步骤

3.1 移动包

如图所示,在某一个子模块的java根目录下,选中包名右键选择重构Refactor。接着选择 Move Package or Directory

在这里插入图片描述

3.2 选择重构的条件

即选择第一个

在这里插入图片描述

点击确认完成迁移

IDEA会检索所有项目中和该包有关的文件夹进行迁移

在这里插入图片描述

3.3 清扫战场

迁移完毕后,我们会发现,项目根目录及test测试目录下会留下原来的包,迁移完毕后,遗留包成为空的文件夹,删除即可。

在这里插入图片描述

3.4 小心毒刺

系统的配置会影响到程序的运行,比如原来的组件扫描的包名、序列化的问题会导致程序运行不成功。因此,这些“毒刺”需要剔除。

3.4.1 redis序列化问题

3.4.1.1 说明

笔者对redis的键值都进行了序列化的设置,因此,重启后台后,访问到的redis序列化对象失败导致前台访问接口失败。

3.4.1.2 解决

清空redis 库即可。

3.4.2 组件扫描

3.4.2.1 说明

ComponentScan、EnableJpaRepositories、EntityScan注解都和扫描的包有关,默认扫描的包为启动类所在的包,因此如果maven模块包命名改变会影响注解的包值

3.4.2.2 解决

修改即可扫描包名

四、其它

对于其它标识需要修改的,通过IDEA的全局搜索工具可以替代你想要的任何字符。

相关文章

  • 深入理解java中的synchronized关键字

    深入理解java中的synchronized关键字

    这篇文章主要介绍了java中的synchronized关键字,有需要的朋友可以参考一下
    2013-12-12
  • 基于Spring boot @Value 注解注入属性值的操作方法

    基于Spring boot @Value 注解注入属性值的操作方法

    这篇文章主要介绍了结合SpEL使用@Value-基于配置文件或非配置的文件的值注入-Spring Boot的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • 详解MyBatis中主键回填的两种实现方式

    详解MyBatis中主键回填的两种实现方式

    这篇文章主要介绍了详解MyBatis中主键回填的两种实现方式,主键回填其实是一个非常常见的需求,特别是在数据添加的过程中,我们经常需要添加完数据之后,需要获取刚刚添加的数据 id,有兴趣的可以参考一下
    2019-04-04
  • SpringMVC中转发与重定向的区别浅析

    SpringMVC中转发与重定向的区别浅析

    这篇文章主要给大家介绍了关于SpringMVC中转发与重定向的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • JAVA生成八位不重复随机数最快的方法总结(省时间省空间)

    JAVA生成八位不重复随机数最快的方法总结(省时间省空间)

    随机数在实际中使用很广泛,比如要随即生成一个固定长度的字符串、数字,这篇文章主要给大家介绍了关于JAVA生成八位不重复随机数最快的方法,文中介绍的方法省时间省空间,需要的朋友可以参考下
    2024-03-03
  • SpringBoot结合Maven项目依赖版本冲突问题解决

    SpringBoot结合Maven项目依赖版本冲突问题解决

    本文主要介绍了SpringBoot结合Maven项目依赖版本冲突问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • Java实现一个顺序表的完整代码

    Java实现一个顺序表的完整代码

    顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般采用数组存储。在数组上完成数据的增删减改。顺序表的底层是一个数组
    2021-04-04
  • JavaTCP上传图片代码实例

    JavaTCP上传图片代码实例

    今天小编就为大家分享一篇关于JavaTCP上传图片代码实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • Java设计模式中的工厂模式详解

    Java设计模式中的工厂模式详解

    这篇文章主要介绍了Java设计模式中的工厂模式详解,工厂方法模式(Factory Method Pattern):创新型模式之一,简称工厂模式,通过定义工厂父类负责定义创建对象的公共接口,而子类则负责生成具体的对象,需要的朋友可以参考下
    2023-09-09
  • 十分钟理解Java中的动态代理

    十分钟理解Java中的动态代理

    十分钟帮助大家理解Java中的动态代理,什么是动态代理?感兴趣的小伙伴们可以参考一下
    2016-06-06

最新评论