簡體   English   中英

如何將所有 package 名稱重命名為小寫

[英]How to rename all package names to lowercase

我有一個包含許多 CamelCase 包的大型項目。 我想將它們全部重命名為小寫,例如:

main.MyPackages.Utilsmain.mypackages.utils


最好/最快的方法是什么?

  1. 我考慮的第一種方法是使用 IDE(在我的例子中是 Eclipse),但這需要做很多工作並且並不總是有效,因為在某些情況下它認為 package 已經存在。
  2. 第二種方法是自己編寫一個程序來處理這個問題。 程序應將所有文件夾重命名為小寫,並將 java 文件中的所有導入語句替換為小寫包。 聽起來比實際上更容易,因為重命名/移動非空目錄需要一些額外的工作,並且在 Windows 上,無法使用 Java 創建具有小寫名稱的新目錄。

有沒有比上面提到的兩種方法更好的方法? 如果不是,我將使用方法二 go。 也許使用 UNIX 操作系統會更好。

使用 Eclipse 重命名所有包:

我嘗試使用 Eclipse 重命名包。 很快我就遇到了這種方法的問題。 我本地分支中主分支的第一次合並再次恢復了所有舊包。 這個想法是在沒有人參與該項目的周末重命名這些包。 但是每個分支仍然需要5 多個小時,我必須至少更改主分支和最后一個發布分支以防止合並沖突。 我意識到這在我的情況下不起作用。

使用自定義 Java 程序重命名所有包:

我寫了一個 Java 程序,它執行以下步驟:

  1. 在通過所有目錄的第一次迭代中,它將所有文件夾復制到一個只有小寫名稱的新目錄(第一個子包已完全重命名以防止 Windows 主機出現問題)。
  2. 然后程序通過新目錄開始第二次迭代,並重命名 Java 文件中的所有導入包。 對於大多數導入,這很簡單,但我需要使用反射來正確重命名 static 導入和 Java 類中枚舉的導入,例如import my.package.MyClass.MyEnum
  3. The next step of the program was to rename all other occurrences of the old package names found in Eclipse eg TestNG XML files, ...
  4. 最后一步是刪除舊文件夾。

該程序的運行時間約為每個分支 2 分鍾。 更新的項目編譯,我沒有遇到任何問題。


我沒有添加任何代碼,因為該程序僅適用於該項目。 也許它仍然可以幫助某人。

在我的情況下,我使用 IntelliJ Idea IDE 並且提到的重構要容易得多。 您只需要右鍵單擊並更改您提到的 package 名稱,這將在每個使用它的地方更新 package 名稱。 讓我知道它是否有效。 請參閱屏幕截圖以供參考

這可以使用中間 package 名稱通過兩個步驟執行:

  • 右鍵單擊 package main.MyPackages.Utils和 select 重構 -> 重命名...
  • 輸入main.mypackages2.utils2 (如果有子包,請檢查Rename subpackages包),然后單擊確定

現在重復相同的操作並將main.mypackages2.utils2重命名為main.mypackages.utils

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM