利用IDEA工具修改Maven多模塊項(xiàng)目標(biāo)識(shí)包名全過(guò)程記錄
一、背景
當(dāng)我們?yōu)榧追椒?wù)提供軟件開(kāi)發(fā)服務(wù)時(shí),需要按照甲方的要求去修改軟件的標(biāo)識(shí),對(duì)于Maven項(xiàng)目來(lái)說(shuō)就對(duì)應(yīng)著groupId,一般地寫(xiě)對(duì)方公司的域名,如com.example。因此,項(xiàng)目中使用到的原來(lái)的代碼需要賦予其新的標(biāo)識(shí)。
二、具備的能力
2.1 IDEA
IDEA的版本為2020.2。
- IDEA的全文檢索,快捷鍵
Ctrl + Shift + R利用該功能可以查找和修改作用域?yàn)檎麄€(gè)項(xiàng)目的相關(guān)字符串。 - 文件夾遷移功能,
move命令
項(xiàng)目的包對(duì)應(yīng)著操作系統(tǒng)的文件,如com.example對(duì)應(yīng)著com\example,因此修改包名其實(shí)就是把文件遷移到另一個(gè)文件夾下。
2.2 Maven多模塊項(xiàng)目
一般地,Maven多模塊項(xiàng)目的包名package和groupId保持一致,這樣對(duì)文件的配置十分有利。
三、步驟
3.1 移動(dòng)包
如圖所示,在某一個(gè)子模塊的java根目錄下,選中包名右鍵選擇重構(gòu)Refactor。接著選擇 Move Package or Directory。

3.2 選擇重構(gòu)的條件
即選擇第一個(gè)

點(diǎn)擊確認(rèn)完成遷移
IDEA會(huì)檢索所有項(xiàng)目中和該包有關(guān)的文件夾進(jìn)行遷移

3.3 清掃戰(zhàn)場(chǎng)
遷移完畢后,我們會(huì)發(fā)現(xiàn),項(xiàng)目根目錄及test測(cè)試目錄下會(huì)留下原來(lái)的包,遷移完畢后,遺留包成為空的文件夾,刪除即可。

3.4 小心毒刺
系統(tǒng)的配置會(huì)影響到程序的運(yùn)行,比如原來(lái)的組件掃描的包名、序列化的問(wèn)題會(huì)導(dǎo)致程序運(yùn)行不成功。因此,這些“毒刺”需要剔除。
3.4.1 redis序列化問(wèn)題
3.4.1.1 說(shuō)明
筆者對(duì)redis的鍵值都進(jìn)行了序列化的設(shè)置,因此,重啟后臺(tái)后,訪問(wèn)到的redis序列化對(duì)象失敗導(dǎo)致前臺(tái)訪問(wèn)接口失敗。
3.4.1.2 解決
清空redis 庫(kù)即可。
3.4.2 組件掃描
3.4.2.1 說(shuō)明
ComponentScan、EnableJpaRepositories、EntityScan注解都和掃描的包有關(guān),默認(rèn)掃描的包為啟動(dòng)類(lèi)所在的包,因此如果maven模塊包命名改變會(huì)影響注解的包值
3.4.2.2 解決
修改即可掃描包名
四、其它
對(duì)于其它標(biāo)識(shí)需要修改的,通過(guò)IDEA的全局搜索工具可以替代你想要的任何字符。
相關(guān)文章
深入理解java中的synchronized關(guān)鍵字
這篇文章主要介紹了java中的synchronized關(guān)鍵字,有需要的朋友可以參考一下2013-12-12
基于Spring boot @Value 注解注入屬性值的操作方法
這篇文章主要介紹了結(jié)合SpEL使用@Value-基于配置文件或非配置的文件的值注入-Spring Boot的相關(guān)知識(shí),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
詳解MyBatis中主鍵回填的兩種實(shí)現(xiàn)方式
這篇文章主要介紹了詳解MyBatis中主鍵回填的兩種實(shí)現(xiàn)方式,主鍵回填其實(shí)是一個(gè)非常常見(jiàn)的需求,特別是在數(shù)據(jù)添加的過(guò)程中,我們經(jīng)常需要添加完數(shù)據(jù)之后,需要獲取剛剛添加的數(shù)據(jù) id,有興趣的可以參考一下2019-04-04
SpringMVC中轉(zhuǎn)發(fā)與重定向的區(qū)別淺析
這篇文章主要給大家介紹了關(guān)于SpringMVC中轉(zhuǎn)發(fā)與重定向的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
JAVA生成八位不重復(fù)隨機(jī)數(shù)最快的方法總結(jié)(省時(shí)間省空間)
隨機(jī)數(shù)在實(shí)際中使用很廣泛,比如要隨即生成一個(gè)固定長(zhǎng)度的字符串、數(shù)字,這篇文章主要給大家介紹了關(guān)于JAVA生成八位不重復(fù)隨機(jī)數(shù)最快的方法,文中介紹的方法省時(shí)間省空間,需要的朋友可以參考下2024-03-03
SpringBoot結(jié)合Maven項(xiàng)目依賴(lài)版本沖突問(wèn)題解決
本文主要介紹了SpringBoot結(jié)合Maven項(xiàng)目依賴(lài)版本沖突問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
Java實(shí)現(xiàn)一個(gè)順序表的完整代碼
順序表是用一段物理地址連續(xù)的存儲(chǔ)單元依次存儲(chǔ)數(shù)據(jù)元素的線性結(jié)構(gòu),一般采用數(shù)組存儲(chǔ)。在數(shù)組上完成數(shù)據(jù)的增刪減改。順序表的底層是一個(gè)數(shù)組2021-04-04

