考试首页 | 考试用书 | 培训课程 | 模拟考场 | 考试论坛  
  当前位置:Linux认证 > 综合辅导 > 文章内容
  

Linux教程:运行在Linux平台的开源Swift

来源:swiftcafe.io [ 2016年2月25日 ] 【

使用 Swift 包管理

同样,开源的 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 包管理系统的基本概念了。

首页 1 2 3 尾页
本文纠错】【告诉好友】【打印此文】【返回顶部
将考试网添加到收藏夹 | 每次上网自动访问考试网 | 复制本页地址,传给QQ/MSN上的好友 | 申请链接 | 意见留言 TOP
关于本站  网站声明  广告服务  联系方式  站内导航  考试论坛
Copyright © 2007-2013 中华考试网(Examw.com) All Rights Reserved