Swift Package Manager基础
请注意,每个依赖项也可以具有自己的依赖项。 因此,如果您包含“ Perfect-HTTPServer”库,则它包含“ Perfect-HTTP”,其中包含“ PerfectLib”,因此无需在您自己的Package.swift文件中包含PerfectLib。
模块布局
关于在何处以及如何创建模块的规则很少。 您的所有源代码都可以在一个文件中,也可以在多个文件中。 但是,所有这些文件都必须位于Sources目录中。
请注意,如果您希望在Sources目录中有子目录,则该Sources目录中必须有一个与Package.swift中的包名称相对应的“父”目录。
例如,Perfect App Template在Sources中有一个名为“ Perfect-App-Template”的目录,该目录与Package.swift文件中的软件包名称相对应。
语义版本控制
SPM假定依赖项存储库遵循“语义版本控制”命名。 这意味着每个标签由3个组件组成,每个组件都是整数:“主要”版本,“次要”版本和“补丁”。
一般规则是,当中断和更改不兼容的API时,将增加主要版本。 引入应该向后兼容的功能时,次要版本会逐渐增加,而补丁版本则用于错误修复或改进。
例如:
“ 1.2.4”表示此库的主要版本为1,次要版本为2,补丁程序级别为4。
为SPM合并语义版本控制
在Packages.swift文件中,我们看到每个软件包都具有关联的“ majorVersion”属性。 这意味着当执行初始构建(或先清理然后再构建)时,该过程将在该主要行中获取该程序包的最高标记版本。
例如:
.Package(URL:“ https://github.com/PerfectlySoft/Perfect-HTTPServer.git”,majorVersion:2)
将获取主要版本2中的最高版本,当前版本为2.1.15
如果存在3.xx版本,将被忽略,仅将获取2.xx版本。
相反,如果我们需要2.0.x版本,则可以指定:
.Package(网址:“ https://github.com/PerfectlySoft/Perfect-HTTPServer.git”,majorVersion:2,minorVersion:0)
这将获取2.0.x行中的最高补丁程序级别。
添加或删除依赖关系
对Packages.swift文件进行任何更改后,我强烈建议您做两件事:清理和构建,以及Xcode项目文件的重新生成。
清理和重建:
#迅速3.0.2
迅速建立--clean = dist; 快速构建
#迅捷3.1
快速软件包更新; 快速构建
要重新生成Xcode项目:
迅捷包generate-xcodeproj
专家提示:使用Perfect Assistant
尽管可以使用命令行和手动编辑文件来实现所有这些功能,但使用Perfect Assistant实际上更容易。 甚至那些认为自己是服务器端Swift超级用户的用户都默认使用PA(完美助手),因为它可以更快,更容易地拖放,按下几个快速按钮。
在PA中添加依赖项就像将依赖项拖放到项目的“ Selected Dependencies”窗格中,然后按“ Save Changes”一样简单。 这将更新Packages.swift文件,然后获取所有必需的依赖项,并重新生成Xcode项目。
如果没有列出相关性,请单击“添加相关性…”按钮,然后在存储库URL中进行复制,并为其指定一个类别。 然后将其添加到要为所有未来项目添加的可用依赖项中。
添加依赖项时,最新的专业被选择为默认。 在依赖项名称下是一个版本下拉列表。
例如,添加“ HTTPServer”后,所选版本为“ 2.xx”,这与我们在“完美应用模板”中看到的“ majorVersion:2”相同。
如果我们要选择2.0.x版本或非常特定的版本(例如2.1.14),则可以选择该版本。 在按下“保存更改”后,我建议单击“清除”,然后单击Xcode项目的“重新生成”按钮。 这将强制系统清除所有内容并更新到所选的特定标记版本。
更多..
如果您想深入了解SPM,请阅读“官方”网站信息,网址为https://swift.org/package-manager/