如果您希望您的源代码控制系统成为所有人的唯一参考,那么在源代码控制中使用 dist可以被认为是一种好的做法:
- 开发商
- 汇编程序(单元测试)
- 认证测试人员(您在集成平台上查询一堆 dist 并在那里执行您的非回归测试、性能测试、压力测试等)
- 生产发布经理...
但是你需要有一个适当的发布过程来完成它。
在您的情况下,构建必须位于单独的私有目录中,即不在颠覆中的目录。当构建正常时,如果是正式版本,则将其导入subversion,如果是临时构建,则将其导入共享目录,下一个团队需要(从而避免将数百个构建提交到 SCM,无用空间)。
注意:在 SCM 中进行交付(dist)的主要优点是允许依赖项目不与您的源一起工作,而是直接与您的交付一起工作(这必然会在某个时间点或另一个时间点投入生产):如果他们管理为了使他们的代码工作,通过与您的交付一起编译,他们自己的 dist 很可能在与您一起部署时可以工作。
这样,其他团队访问您的交付(您的“myProject.jar”)就像他们访问他们的任何资源一样:他们可以通过 SCM 读取您的 jar 的版本、日期、历史、元数据、标签和很快。
然而,对于一个小型单体(如“没有其他项目依赖它”)项目,可以说 dist (最终打包交付)可以按需重新构建并存储在外部引用系统中,作为外部例如 Maven 存储库。
但是:Maven 不是 SCM 存储库,这意味着您需要签署您的 jar('MyProject-1.0.jar'),您没有历史记录,并且您需要在交付时在单独的文本文件中报告所有元数据。在该 Maven 存储库中访问该交付的任何其他项目都需要根据您的版本命名约定调整其脚本和类路径。
另外,Maven 是您开发架构中的另一个存储库。只要您可以将存储库的数量保持在最低限度('1' ;)),那就更好了。