同样,开源的 Swift 也提供了包管理平台,相信今后无论你使用 Swift 开发一款 iOS APP, 甚至是一个 Linux 服务端程序,你都能够很快的在包管理平台上找到快速解决问题的第三方库。
下面我们就来看看如何使用 Swift 的包管理系统。Swift 开源社区在 Github 上提供了一个例子说明了这个问题,首先我们在 Ubuntu 上面安装 git 命令工具:
sudo apt-get --assume-yes install git
安装成功后,将 Swift 包管理的示例从 Github 上面复制出来:
git clone https://github.com/apple/example-package-dealer.git
复制成功后,我们用 ls
命令看到这个包里面有 4 个文件:
CONTRIBUTING.md Package.swift README.md main.swift
其中 main.swift 是程序的代码文件,而 Package.swift 就是包管理文件,我们来看一下 Package.swift 的内容:
import PackageDescription let package = Package( name: "Dealer", dependencies: [ .Package(url: "https://github.com/apple/example-package-deckofplayingcards.git", majorVersion: 1), ] )
这里面定义了我们这个包的名称: name: "Dealer"
, 然后还定义了它的依赖关系, 它依赖于另外一个代码库:
https://github.com/apple/example-package-deckofplayingcards.git
通过 Package.swift 的定义, swift build
命令就可以根据相应的依赖关系,自动为我们的项目抓取那些需要的第三方库。
我们现在可以运行 build 命令:
swift build
可以看到, swift build
正在替我们把各种项目的依赖关系处理了一遍:
Cloning Packages/example-package-deckofplayingcards Cloning Packages/example-package-fisheryates Cloning Packages/example-package-playingcard Compiling Swift Module 'FisherYates' (1 sources) Linking Library: .build/debug/FisherYates.a Compiling Swift Module 'PlayingCard' (3 sources) Linking Library: .build/debug/PlayingCard.a Compiling Swift Module 'DeckOfPlayingCards' (1 sources) Linking Library: .build/debug/DeckOfPlayingCards.a Compiling Swift Module 'Dealer' (1 sources) Linking Executable: .build/debug/Dealer
从输出可以看到,我们复制出来的这个项目的依赖项目,又依赖了其他的项目,形成了一个依赖链条。
当 swift build
命令运行完成自后,我们会发现项目的根目录中多了一个 Packages
目录,这个目录里面存放了我们抓取下来的依赖项目:
+ Packages | example-package-deckofplayingcards-1.0.2 | example-package-fisheryates-1.0.2 | example-package-playingcard-1.0.1
这个就是 Swift 包管理系统的基本概念了。
2015职称计算机考试书PowerPoint2007中 .. 定价:¥45 优惠价:¥42 更多书籍 | |
2015年全国职称计算机考试教材(2007模 .. 定价:¥225 优惠价:¥213 更多书籍 |