我们正在开发一个C ++项目,内部模块化为单独的存储库。 这个项目还依赖于外部依赖:一些开源(我们为其构建二进制文件)和一些关闭(我们为此获取预构建的二进制文件)。
在发布新的提交供其他人使用时,关键的方面不仅仅是列出依赖关系,而是能够指定依赖关系的预期版本:
我们正在寻找一种现有工具(或方法)来管理依赖关系及其版本,理想情况下解决内部和第三方依赖关系。
理想情况下,此解决方案的结构使其可供开发人员和自动化流程使用(想到持续集成,确保实际构建集成分支的推送)。
答案 0 :(得分:1)
源依赖关系的常见解决方案是使用源控件依赖的 git子模块, svn:external 或 mercurial子存储库。
根据我的经验,使用Team Foundation Server无法做到这一点。 对于二进制文件,我曾经在Makefile中有一个自定义目标来从共享文件夹或其他任何东西中复制依赖项。
可以像在本地开发机器上那样轻松地从CI调用这些目标。