我手头有一个相当大的(几个MLOC)应用程序,我想将其拆分成更易维护的独立部分。目前,该产品由大约40个Eclipse项目组成,其中许多项目具有相互依赖关系。这本身就使得持续构建系统变得不可行,因为它必须在每次签入时进行大量的重建。
有没有一种“最佳实践”的方法?
如果有(免费/开放的)工具支持这一点,我将不胜感激。
尽管我没有任何使用Maven的经验,但它似乎强制了一种非常模块化的设计。我现在想知道这是不是可以迭代改造的东西,或者如果一个使用它的项目必须从一开始就考虑到模块化。
编辑2009-07-10
我们正在使用Apache Ant/Ivy拆分一些核心模块。这是一个非常有用且设计良好的工具,不会像maven那样强加于你。
我在我的博客上写下了一些更一般的细节和个人观点--太长了,不能在这里发表,可能每个人都不感兴趣,所以你可以随意关注:www.danielschneller.com
发布于 2009-05-19 07:35:19
使用OSGi可能非常适合您。它将允许在应用程序之外创建模块。您还可以以更好的方式组织依赖项。如果您正确定义了不同模块之间的接口,则可以使用持续集成,因为您只需重新构建签入时受影响的模块。
OSGi提供的机制将帮助您理清现有代码。由于类加载的工作方式,它还可以帮助您以一种更容易的方式处理补丁。
Some concepts of OSGi that seem to be a good match for you, as shown from wikipedia:
该框架在概念上分为以下几个区域:
Java headers.
来处理安全方面的层
发布于 2009-05-19 07:38:53
首先:祝你好运&好咖啡。这两个你都需要。
我曾经遇到过类似的问题。具有可怕的循环依赖关系的遗留代码,即使是来自不同包的类之间,如org.example.pkg1.A也依赖于org.example.pk2.B ,反之亦然。
我从maven2和fresh eclipse项目开始。首先,我尝试确定最常见的功能(日志层、公共接口、公共服务),并创建了maven项目。每次我对某个部分感到满意时,我都会将该库部署到中央nexus库中,以便几乎可以立即将其用于其他项目。
所以我慢慢地做了一层又一层。maven2处理了依赖关系,m2eclipse插件提供了一个有用的依赖关系视图。顺便说一句,将eclipse项目转换成maven项目通常并不太难。m2eclipse可以为您做到这一点,您只需创建一些新文件夹(如src/main/java)并调整源文件夹的构建路径即可。只需要一两分钟。但是,如果您的项目是一个eclipse插件或rcp应用程序,并且您希望maven不仅管理工件,而且还构建和部署应用程序,则会遇到更多困难。
从观点来看,eclipse、maven和nexus (或任何其他maven仓库管理器)都是一个很好的起点。您很幸运,如果您对系统体系结构和有很好的文档,那么这个体系结构就真正实现了;)
发布于 2009-05-19 19:16:41
对于现有的系统,迁移到Maven是很痛苦的。但是,它可以毫不费力地处理100+模块项目。
https://stackoverflow.com/questions/881340
复制相似问题