同樣,開源的 Swift 也提供了包管理平臺,相信今后無論你使用 Swift 開發(fā)一款 iOS APP, 甚至是一個 Linux 服務端程序,你都能夠很快的在包管理平臺上找到快速解決問題的第三方庫。
下面我們就來看看如何使用 Swift 的包管理系統(tǒng)。Swift 開源社區(qū)在 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
命令就可以根據(jù)相應的依賴關系,自動為我們的項目抓取那些需要的第三方庫。
我們現(xiàn)在可以運行 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
命令運行完成自后,我們會發(fā)現(xiàn)項目的根目錄中多了一個 Packages
目錄,這個目錄里面存放了我們抓取下來的依賴項目:
+ Packages | example-package-deckofplayingcards-1.0.2 | example-package-fisheryates-1.0.2 | example-package-playingcard-1.0.1
這個就是 Swift 包管理系統(tǒng)的基本概念了。
![]() | ![]() .. 定價:¥45 優(yōu)惠價:¥42 更多書籍 |
![]() | ![]() .. 定價:¥225 優(yōu)惠價:¥213 更多書籍 |