2012-03-01 51 views
4

我有一個龐大的單片web應用程序,我希望分解成更小的模塊。作爲第一步,我想改變目前看起來像包層次:Java的重構/重構工具

- com.companyname.project 
    - dao 
    - bean 
     - booking // possibly containing more sub packages 
     - core 
     ... etc etc (there are a bunch of others as well) 
    - service 
     - booking // possibly containing more sub packages 
     - core 
     ... etc etc 
    - logic 
    - bean 
     - booking // possibly containing more sub packages 
     - core 
     ... etc etc 
    - service 
     - booking 
     - core 
     ... etc etc 
    - web 
    - bean // same substructure as above... 
    - service // same substructure as above... 
    - taglib // same substructure as above... 
    - util 

我想它如果用於例如booking封裝結構如下com.companyname.project

現在我的包名想知道是否有一個工具可以使用一個簡單的正則表達式來爲我進行重組。

E.g.
com.companyname.project.dao.bean.booking
將成爲:
com.companyname.project.booking.dao.bean

com.companyname.project.dao.service.booking
將成爲:
com.companyname.project.booking.dao.service

我可以使用Eclipse和拖放的包,但我尋找的東西這可以儘量減少我的影響,因爲這將是非常重複的。

+6

如果你有在Eclipse中開始工作而不是寫這個問題,現在你已經完成了一半。 – 2012-03-01 12:19:50

+1

@ErickRobertson相信我...我不會;) – 2012-03-01 12:45:25

+0

@Emil h你有沒有找到任何解決方案呢? – user1283633 2013-05-26 06:00:34

回答

1

你可以使用任何的Java IDE與重構兼容性:

  • 的IntelliJ IDEA(最好的重構支持)。它有開源社區版和封閉源碼終極版。
  • 的Eclipse(開源)
  • 的NetBeans(開源)

我不建議你使用正則表達式查找/替換,因爲它很容易出錯。

+0

我不會使用這個正則表達式。但是,如果例如在eclipse中重命名重構可以採用正則表達式並將其用於名稱更改,我希望它。 – 2012-03-05 17:40:38

-1

爲什麼不使用Java本身?我相信在你目前的情況下,你可以輕鬆編寫一個小型的Java程序來完成你正在談論的確切重構,並確保沿途沒有錯過任何東西。你可以編寫一個採用「pre」(即「com.companyname.project.dao.bean.booking」)和「post」(即「com.companyname.project.booking.dao.bean」)的方法。 params並將「pre」結構適當地複製到「post」結構中。

在這個程序中,我設想了一個主要方法和一個「convertPackage(pre,post)」方法。然後,您可以獲得一系列「前」和「後」結構,並通過將它們轉換爲新的結構進行循環。最好做到這一點,將其複製到某種臨時目錄中,而不是將原始文件作爲附加的安全措施。

也許我的想法太簡單了,但是我可以看到一個程序可以在一天或更少的時間內完成重構。

你會得到了解的好處究竟什麼正在發生變化,而不是隨這些自動化工具,可它適合你或可能不會不安全?