2009-10-29 20 views
0

我有一個根本沒有打包的現有代碼庫。與從Java中的默認包更改相關的風險?

代碼庫是所有旨在擴展/增強第三方程序功能的次要Java程序。當前進程每個類一個jar,每個文件一個類,沒有包。

我想分解代碼庫,所以每個jar文件也是一個包;這簡化了我在Eclipse中的jar過程。

有沒有與此相關的風險我需要注意?

回答

4

唯一的風險是顯式(或更可能的,隱式)包定義過期。

例如,所有的Java文件的,因爲他們是在同一個包,將不再需要進口對方。遷移之後,他們需要使用其他包中類的完全限定名稱,或者導入它們。幾乎可以肯定需要更新爲完全限定的名稱(例如「com.company.package。」)。類似地,類名出現在任何地方(例如,在Spring配置文件中,可能是用於命名類的屬性文件)。 MyClass「而不是」MyClass「)。

這是後者,可能是最麻煩的;只要你有一個良好的構建過程,並確保你從頭開始構建,任何Java錯誤應該在編譯階段被捕獲(除非你在源代碼中使用像Class.forName("MyClass")這樣的奇怪東西)。但是,配置文件問題在運行時會出現,如果沒有整理出來的話 - 那麼,通常當它們即將被使用時。如果一個很少使用的特性有一個引用你的類的Spring配置,並且你忘記修改它,那麼在它失敗之前你不會發現它。

加方 - 體面的IDE將有一個「重命名」或「改變包」重構,這應該是能夠找到的文字類的名字出現次數太多的文件。

0

我不知道我完全理解你正在嘗試做的,但如果你正在尋找爲您創造類的,其中今天沒有這樣的包(一個或多個),那麼只需要知道,有些方法可能不再可見如果他們被包裝保護。

0

把所有的類拆分成包(包括任何屬性文件等),並創建一個從那個包一個罐子,那麼你可以隨時包括通過持續做的項目是在你的Eclipse項目是jar文件建立選項,包括它作爲一個外部的jar文件,然後只需要將你需要的特定類/類導入到項目中,就完成了。

只要你包括那些類需要到最終包裝/罐的所有資源,他們將同樣的方式工作,因爲他們沒有出現,但它們將非常非常容易使用等項目。

0

當您移動類到不同的包或重命名使用Eclipse包,Eclipse是足夠聰明,查找和更改所有引用爲好。一次全部。試一試。