2012-03-01 34 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)”方法。然后,您可以获得一系列“前”和“后”结构,并通过将它们转换为新的结构进行循环。最好做到这一点,将其复制到某种临时目录中,而不是将原始文件作为附加的安全措施。

也许我的想法太简单了,但是我可以看到一个程序可以在一天或更少的时间内完成重构。

你会得到了解的好处究竟什么正在发生变化,而不是随这些自动化工具,可它适合你或可能不会不安全?