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

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

这是我们的设置:

> ~225 eclipse项目(全部在主干/项目中)
> ~30 eclipse功能(全部在主干/功能)
> ~900k行代码

我们发现了一些不同的瓶颈:

> Windows上的SVN非常慢(尝试过TortoiseSVN,SmartSVN,命令行svn),更新可以在5-8分钟内完成,它只更新10个小文件.唯一合理的客户是subclipse /颠覆,但是这些还有其他问题,我们遇到了一些问题.
> Eclipse Refresh可能需要3-5分钟
> Eclipse构建可能需要5-15分钟

我相信解决方案是限制任何一个开发人员需要在任何给定时间检查并激活的项目数量,我只是想看看是否有其他人有任何适合他们的良好做法/政策.

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

另一个想法是使用项目集,只需检查你需要的方式.

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

谢谢.

最佳答案 我们为这种配置采用的策略是围绕部署概念的策略.

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

这意味着:

>任何负责测试所有系统的“集成团队”都可以在一次请求中快速更新所有交付给VCS,而无需全部重建.因此,“部署”一词:这种方法促进了这一点.
>更重要的是,对于您的问题,任何项目只需要查询编译所需的交付,以便工作和进行代码演变.

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

这也迫使我们:

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

基本上有两种方法:

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

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

点赞