迦太基的依赖性管理策略


在与iOS和macOS开发人员进行讨论时,我意识到他们几乎所有人都知道迦太基,但是不幸的是,一些开发人员认为它仅限于carthage update命令来下载框架。

如果您只知道update作为选项,或者仅倾向于使用此选项,那么您将在本文中找到一种简单而有效的依赖项管理策略,该策略仅基于两个Carthage选项updatebootstrap

迦太基使用基础

迦太基工作流程基于Cartfile ,后者是开发人员和工具之间的接口。 我们在该文件中以OGDL格式添加了我们想要的所有框架。 为简化起见,我们每行通过添加其来源(Git repo,github或二进制文件)以及可选的要下载的版本来编写一个框架。
注意 :第一次添加每个框架都需要其他必要步骤(请参阅:将框架添加到应用程序)。

迦太基更新

该命令将通过解决所有依赖关系来下载Cartfile中列出的所有框架; 构建它们(如果未指示版本要求,则下载依赖项的最新版本)并更新解析文件carthage.resolved ,列出所有依赖项(甚至是嵌套的依赖项),并列出每个要下载的确切版本。

迦太基靴

此命令将完全按照carthage.resolved文件中的说明下载和构建框架。 如果文件( carthage.resolved )不存在,则此命令将执行update ,它将解决依赖关系并(重新)生成它。

战略

首先,它包括将Cartfilecarthage.resolved添加到版本控制系统(大多数情况下为Git),并排除Carthage目录及其子目录,以使存储库轻巧。

然后,所有团队成员每次需要获取所需框架时都需要使用carthage bootstrap (例如,当切换到不包含相同框架版本的新分支或包含新框架的分支时)。

最后,仅在确实需要更新框架并将这两个文件添加到commit (当然,在测试和/或调整实现以适应更改之后),才使用carthage update

一般
可以将相同的策略应用于其他依赖项管理工具,例如:
Cocoapods ,带有pod installpod update以及PodfilePodfile.lock
Bundler ,具有bundle installbundle update以及GemfileGemfile.lock
并且可能是其他同类工具。


本文的其他版本:法语
Github项目:
迦太基