如何模块化(大型)Java应用程序?
我手头有一个相当大的(几个MLOC)应用程序,我想将其拆分为更易于维护的独立部分。目前,该产品由大约40个Eclipse项目组成,其中许多项目具有相互依赖关系。仅此一点就使连续构建系统不可行,因为它必须在每次签入时进行大量重建。
有没有一种“最佳实践”方法
- 识别可立即分离的部件
- 直观地记录相互依赖关系
- 解开现有代码
- 处理我们需要应用于库的“补丁”(目前通过将它们放在实际库之前的类路径中来处理)
如果有(免费/开放)工具支持这一点,我将不胜感激。
尽管我对Maven没有任何经验,但它似乎强制采用了非常模块化的设计。我现在想知道这是否可以通过迭代方式进行改造,或者如果一个使用它的项目必须从一开始就考虑到模块化。
编辑 2009-07-10
我们正在使用Apache Ant / Ivy拆分一些核心模块。真正有帮助和精心设计的工具,不像maven那样强加给你那么多。
我在我的博客上写下了一些关于我们为什么要这样做的更一般的细节和个人意见 - 太长了,无法在这里发布,也许对每个人都不感兴趣,所以请自行决定:www.danielschneller.com