我处理的项目太大而无法驻留在单个Visual Studio / Eclipse / NetBeans项目中,我们有一个“通用软件”团队负责开发和维护其他团队使用的软件库。
我正在努力解决如何管理通用软件的开发和更改。方法签名和类更改时,是否保留旧版本并将其标记为已弃用?目前的计划是每两周分发一次新的公共图书馆。
答案 0 :(得分:1)
绝对建立一个存储库。如果你是Maven-hater,请查看Gradle,它使用常春藤。 Maven以复杂而着称,但确实有更好的工具支持。 IDE支持Maven开箱即用或插件,它们为您提供显示项目中的jar所依赖的图表,因此您可以轻松地看到冲突。
Ivy或Maven都会整理您的依赖关系,以便您的项目使用正确的版本。您的每个项目都应该列出(在Maven的pom.xml中)它使用的公共库的哪个版本。
答案 1 :(得分:0)
大多数版本控制系统的一个共同特征是使用外部分支。通用软件从共享存储库中获取,并在更新时集成到每个项目中。 一个关键的难点在于对通用软件的公共API的文档更改,我看到了两个解决方案:对已弃用的签名的良好沟通以及持续集成,其中发现弃用的方法可能会让人感到痛苦。
答案 2 :(得分:0)
您可以选择几个选项。
选项A:使用存储库
对于基于Java的系统,我建议您使用Ant + Ivy或Maven,并使用这些常见项目中的代码创建内部存储库。
选项B:类路径项目 如果设置存储库太多,你可以做的是创建一个名为classpath的eclipse项目,其中包含以下三个目录
classpath\
docs\
sources\
jars\
在公共项目上工作的团队可以有一个构建脚本来编译公共代码并将其放入类路径项目中,开发团队的其余部分需要做的就是检查classpath项目并引用其中的文件在开发期间。
就个人而言,我是选项B的粉丝,除非有一位专职人士致力于构建,在这种情况下,我选择A。
管理方法签名更改的方法是遵循通用版本约定,因此当您执行主要版本号增加时,您可以说必须更改相关代码,如果它是次要版本号增加,则依赖代码不需要改变。将代码标记为已弃用是一个非常实用的选项,因为IDE和构建系统应该发出警告并允许编码器切换到更新的版本。如果同一个团队正在更改公共代码和主项目,那么您将需要在同一个工作区中检查所有实际的eclipse项目,以便重新分解工具可以完成它们的工作。
除非在许多项目中使用相同的代码,否则我会将其保存在一个项目中,您可以使用多个源文件夹轻松导航到代码的各个部分。如果您在开发人员检查破坏事物时遇到问题,那么我建议您更频繁地检查或让开发人员在分支机构工作,他们经常从主干到工作分支合并以消除同步问题,一旦完成它们就可以从分支机构合并到主干,最新版本的subversion对此有了不错的支持,像mercurial和git hub这样的DVCS源控制系统非常出色。