2011-03-10 60 views
3

我工作的项目太大,无法驻留在单个Visual Studio/Eclipse/NetBeans项目中,我们有一个“通用软件”团队负责开发和维护其他团队使用的软件库。如何管理大型项目上的通用软件?

我正在为如何管理通用软件的开发和更改而苦苦挣扎。当方法签名和类更改时,我是否保留旧版本并将其标记为已弃用?目前的计划是每两周分发一个新的公用库。

回答

1

绝对建立了一个存储库。如果你是一个Maven黑客检查Gradle,它使用常春藤。 Maven因复杂而闻名,但它确实有更好的工具支持。IDE支持Maven的开箱即用或插件,它们会给你显示项目中罐子依赖的图形,所以你可以很容易地看到冲突。

无论是常春藤还是Maven都会整理你的依赖关系,以便你的项目使用正确的版本。你的每个项目都应该列出(在Maven的pom.xml中)你使用哪个公共库的哪个版本。

+0

过去3个月,我们通过构建框架将Ivy与文件系统存储库结合使用,它一直令人惊叹!我们消费者的学习曲线非常低,他们喜欢按照自己的意愿过渡到常春藤的能力。有些团队将他们的项目直接指向文件系统上的常青藤资源库,而其他团队则创建了常青藤文件,这两种情况都非常有用。 – Brian 2012-04-10 12:30:22

0

大多数版本控制系统的一个共同特点是使用外部分支。通用软件从共享存储库中获取并集成到每个项目中进行更新。 一个关键的难点在于通用软件的公共API的文档更改,我看到了两种解决方案:良好的已弃用签名通信和持续集成,发现已弃用的方法可能会很痛苦。

0

有几个选项,你可以有。

选项A:使用存储库

对于基于Java的系统,我会建议你使用ANT +常春藤或Maven,并创建与这些共同项目的代码的内部存储库。

选项B:类路径项目 如果设置信息库实在是太多了,你所能做的就是在它

classpath\ 
    docs\ 
    sources\ 
    jars\ 

的团队创建一个名为类路径有以下三个目录Eclipse项目工作在公共项目上可以有一个构建脚本,它可以编译通用代码并将其放入类路径项目中,其余的开发团队需要做的就是签出类路径项目并在开发期间引用它中的文件。

我个人是选择B的粉丝,除非有专门做一个全职的人建立在我去的选项A.这种情况下

在方法签名管理方式的改变是遵循一个共同的版本约定,所以当你做一个主版本号增加时,你可以说依赖代码将不得不被改变,并且如果它是一个次版本号增加,那么相关代码就不需要改变。将代码标记为已弃用是非常实用的选项,因为IDE和构建系统应该发出警告并允许编码人员切换到较新的版本。如果同一个团队正在改变通用代码和主项目,那么你将需要将实际的eclipse项目全部签出到同一个工作区中,以便重新分解工具可以完成他们的工作。

除非通用的代码将跨越多个项目使用,否则我会将它保留在一个项目中,您可以使用多个源文件夹轻松导航到代码的各个部分。如果您在开发人员检查破坏事情时遇到问题,那么我建议您更频繁地签入或让开发人员在他们经常从主干与工作分支合并的分支上工作,以消除同步问题,尽可能完成从分支合并回干线,最新版本的Subversion得到了很好的支持,而像Mercurial这样的DVCS源代码控制系统和git集线器都非常出色。