将Eclipse与大型工作区一起使用

时间:2009-05-15 22:52:42

标签: eclipse eclipse-rcp

我们当前的产品基于Eclipse RCP。当我们尝试将整个代码库放在一个eclipse工作区中时,我们开始遇到问题,我们想知道其他人在做什么。

这是我们的设置:

  1. ~225 eclipse项目(全部在主干/项目中)
  2. ~30 eclipse功能(全部在主干/功能中)
  3. ~900k行代码
  4. 我们发现了一些不同的瓶颈:

    1. Windows上的SVN速度非常慢(尝试过TortoiseSVN,SmartSVN,命令行svn),更新可能需要5-8分钟,并且只更新10个小文件。唯一合理的客户是subclipse /颠覆,但是这些有其他问题,我们遇到了一些麻烦。
    2. Eclipse Refresh可能需要3-5分钟
    3. Eclipse构建可能需要5-15分钟
    4. 我认为解决方案是限制任何一个开发人员需要在任何特定时间检查并激活的项目数量,我只是想看看是否有其他人有任何有效的做法/政策对他们来说。

      例如,我的第一个想法是将目标平台设置为来自主干的最后一个“安全”构建,然后只是检查项目。这有效,但不会告诉您是否已经破坏了依赖于您实际覆盖的项目的任何项目。

      另一个想法是使用项目集,只是以这种方式检查你需要的东西。

      还有其他人遇到过这个问题吗?如果是这样,你在做什么来解决它?

      感谢。

1 个答案:

答案 0 :(得分:2)

我们为此类配置采用的策略是围绕部署的概念。

任何项目都负责构建,然后版本化要传递的文件集(jar,war,ear,...)。

这意味着:

  • 负责测试所有系统的任何“集成团队”都可以在一次请求中快速更新所有交付给VCS,而无需全部重建。因此,“部署”一词:这种方法促进了这一点。

  • 更重要的是,对于您的问题,任何项目只需要查询编译所需的交付,以便工作和进行代码演变。

因此对于任何给定的项目,实际上只有一个在eclipse中打开,它指的是来自其他项目的各种库。

这也迫使我们:

  • 重新考虑我们在所有项目之间的各种依赖关系(检测一些要删除的循环依赖关系的情况),
  • 重新检查我们的应用架构,当我们意识到几个项目太“细粒度”并且需要聚合在一起时。

基本上有两种方法:

  • 基于系统,所有应用程序的每个部分都可以一起开发,并且您对所需的每个项目都有源依赖性
  • 基于组件,您的项目没有源依赖项,仅依赖于库。

在eclipse-plugin方法中,需要找到一个中间立场:
来自同一域的所有项目(如“com.mycorp.fileutil[.XXX]”)都可以由eclipse项目表示,它们之间存在源依赖关系。但是,不属于该域的“com.mycorp.fileutil”所需的任何其他组件都应作为库导入,而不是作为源依赖项导入。因此,我们的“以部署为中心,首先发布”的观点。