Dan*_*ler 17 java refactoring maven-2 modularity
我手边有一个相当大的(几个MLOC)应用程序,我想分成更易于维护的单独部分.目前,该产品由大约40个Eclipse项目组成,其中许多项目具有相互依赖性.仅这一点使得连续构建系统变得不可行,因为每次签入都需要非常重建.
是否有"最佳实践"的方法
如果有(免费/开放)工具来支持这一点,我会很感激指点.
尽管我对Maven没有任何经验,但它似乎强制采用非常模块化的设计.我现在想知道这是否可以迭代地进行改装,或者是否一个项目使用它必须从一开始就考虑到模块化.
编辑2009-07-10
我们正在使用Apache Ant/Ivy拆分一些核心模块.非常有用且设计精良的工具,而不是像maven那样强加给你.
我写了一些更一般的细节和个人意见,说明我们为什么在我的博客上这样做 - 这里发布的时间太长,也许每个人都不感兴趣,所以请自行决定:www.danielschneller.com
使用OSGi可能非常适合您.它允许从应用程序中创建模块.您还可以以更好的方式组织依赖项.如果正确定义了不同模块之间的接口,则可以使用持续集成,因为您只需要在签入时重建受影响的模块.
OSGi提供的机制将帮助您解开现有代码.由于类加载的工作方式,它还可以帮助您以更简单的方式处理补丁.
该框架在概念上分为以下几个方面:
第一:好运和好咖啡.你需要两个.
我曾经遇到过类似的问题.具有可怕循环依赖性的遗留代码,甚至是来自不同包(如org.example.pkg1.A)的类之间的代码依赖于org.example.pk2.B ,反之亦然.
我从maven2和新的eclipse项目开始.首先,我尝试确定最常见的功能(日志层,通用接口,公共服务)和创建的maven项目.每次我对某个部件感到满意时,我都会将该库部署到中央nexus存储库,以便几乎可以立即用于其他项目.
所以我慢慢地完成了各个层面的工作.maven2处理了依赖项,m2eclipse插件提供了一个有用的依赖视图.BTW - 将eclipse项目转换为maven项目通常并不困难.m2eclipse可以为你做,你只需要创建一些新的文件夹(如src/main/java)并调整源文件夹的构建路径.只需一两分钟.但是如果您的项目是eclipse插件或rcp应用程序,并且您希望maven不仅可以管理工件,还可以构建和部署应用程序,那么期望更多的困难.
对于意见,eclipse,maven和nexus(或任何其他maven存储库管理器)是一个很好的基础.你是幸运的,如果你有系统架构的一个很好的文档和这个架构是真正落实;)
| 归档时间: |
|
| 查看次数: |
5147 次 |
| 最近记录: |