我手头有一个相当大的应用程序(几个MLOC),我想将其分解为更易于维护的单独部分。当前,该产品由大约40个Eclipse项目组成,其中许多项目具有相互依赖性。仅此一项就使连续构建系统不可行,因为每次检入都必须进行大量重建。
是否有“最佳实践”方法
如果有(免费/开放)工具来支持这一点,我将感谢指针。
即使我没有使用Maven的任何经验,似乎也迫使它采用了非常模块化的设计。我现在想知道这是否是可以迭代地进行改造的,还是要使用它的项目是否必须从一开始就考虑模块化就进行布局。
编辑2009-07-10
我们正在使用Apache Ant / Ivy拆分一些核心模块。真正有用且精心设计的工具,没有像maven那样强加给您。
我在博客上写下了一些关于我们为什么这样做的更一般的详细信息和个人见解- 太久了,无法在此处发布,可能对每个人都不感兴趣,因此请自行决定:www.danielschneller.com
使用OSGi可能非常适合您。它将允许在应用程序之外创建模块。您还可以更好地组织依赖关系。如果您正确定义了不同模块之间的接口,则可以使用连续集成,因为您只需重建在签入时受影响的模块即可。
OSGi提供的机制将帮助您解开现有代码。由于类加载的工作方式,它还可以帮助您以更简单的方式处理补丁。
维基百科显示的一些OSGi概念似乎很适合您:
该框架在概念上分为以下几个方面: