c – 将所有项目依赖项放在项目的存储库中是否很好?
我有一个项目使用了几个(现在~6个)依赖项(其他库).他们中的大多数都是麻省理工学院/简单的BSD许可证,所以将它们复制到我的仓库应该不是问题.
将所有这些库放到我的仓库并推送它们(当新版本到来时,也更新它们)是不是一个好的做法?或者我的项目仓库应该只包含项目文件(代码,资产等)? 优点: >建筑是如此简单,因为我拥有所有我需要永远关闭的东西 缺点: >项目回购膨胀 解决方法
简答:这取决于.
答案很长: 在您质疑是否适合将代码包含在存储库中之前,您应该询问是否适合严格控制依赖关系或更轻松. 答案取决于您分发项目的方式,客户/用户的需求,是否需要对依赖项进行任何源代码更改以及任何其他项目要求. 例如,假设您正在销售硬件设备,而您的代码是设备的固件.在这种情况下,您可能希望严格控制依赖项(需要非常特定的版本).这使您可以完全控制整个系统,从而简化系统测试,如果您的设备受到某些安全性,安全性或可靠性要求(例如,它是医疗设备或发送给Pluto的探测器),这一点非常重要.通常,如果以二进制或文件系统映像的形式分发产品,则可能需要使用固定依赖项. 如果您希望用户能够动态链接其系统附带的任何版本的依赖项(这有很多原因,包括安全更新),那么您可能希望放宽要求.明确支持哪些版本,将自己限制在这些版本中可用的文档化API,使用工具来强制执行要求(如果依赖项太旧则出错),并针对尽可能多的依赖项版本测试代码. 一旦知道要控制依赖关系的紧密程度,就可以选择用于管理它们的机制.您可以使用像Apache Ivy这样的工具来自动获取依赖项,使用GNU Autoconf来强制执行特定版本,或者您可以将代码拉入Git存储库并自行构建.具体选择并不重要;使用满足您要求的任何内容,对您和您的用户来说都是最简单的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |