虽然我们是一个使用SVN进行源代码管理和Apache Ivy进行依赖管理的Java阵营,但这个问题广泛适用于任何平台/语言,SCM和工件存储库工具。同步版本控制和工件库
我的技术主管和我带领公司迈出了第一步,使用Ivy这样的依赖管理器来管理我们所有的JAR。我们已经建立了我们称之为“Ivy Repo”的地方,这是我们内部(由我们开发)JAR以及常用重用依赖项(Apache JAR,Spring等)的地方。
我们开始遇到问题,其中一个开发商将不得不做出改变我们的内部共享JAR(Commons.jar
),然后运行之前的代码更改的<ivy:publish>
已代码审查,致力于为SVN和建CI服务器。这种情况发生在开发人员正在研究某个项目中的错误修复或新功能时,但需要对Commons.jar等依赖项进行修改才能完成其任务。
因此,我们处于常春藤和SVN不同步的情况。
很明显,我们可以立即制定一个规则,即在没有先审查代码,提交并测试代码的情况下,不允许任何人发布。或者,我们可以完全禁止开发者发布。
在走向任何一条路线(我们倾向于后者)之前,我们想知道其他团队是否遇到过相同的问题,并采取了哪些解决方案来防止这种情况发生。
也许像Artifactory或SonaType这样的工具值得研究,但我们都没有与他们的经验,它看起来并不像他们支持这些类型的业务规则。
简而言之:我们正在寻找一种方式,以防止过早JAR出版使出版始终是我们的标准code
>>review
>>commit
>>CI
>>deploy
周期最后阶段。
在此先感谢!
谢谢noamt - 听起来像Artifactory是要走的路! – IAmYourFaja