工程结构 封面
Vapor 大型教程

工程结构

上一节用 vapor new 以通用 api 模板创建了 HelloVapor 项目。本文看一下模板项目的目录结构,理解功能模块是如何划分的。

目录结构一览

$ pwd
/Users/joker/Desktop/vapor/HelloVapor
$ brew install tree
$ tree .
.
├── Dockerfile
├── Package.resolved
├── Package.swift
├── Public
├── Sources
│   ├── App
│   │   ├── Controllers
│   │   ├── configure.swift
│   │   └── routes.swift
│   └── Run
│       └── main.swift
├── Tests
│   └── AppTests
│       └── AppTests.swift
└── docker-compose.yml

7 directories, 8 files

Vapor 使用 Swift Package Manager(SPM) 作为依赖管理系统,类似 iOS 平台上的 Cocoapods。配置好的 Vapor 项目可以调用 swift 工具链编译链接,生成可执行程序或三方库。

一个 SPM 项目定义在 Package.swift 文件中,里面声明了目标(Target)、依赖(Dependencies),以及它们如何被链接在一起。项目布局也和传统 Xcode 项目有所不同。

Source 与模块

Source 目录存放源文件,Package.swift 中定义的每个 Target 都对应 Source 下的一个子模块目录。模板项目声明了两个子模块:AppRun

Tests 与测试模块

Tests 存放所有测试子模块,Package.swift 中定义的每个 testTarget 对应一个测试子模块,专门用来测试 Sources 中对应的应用子模块。

其它文件

生成可在 Xcode 中开发的工程

之前我们一直在命令行下运行 Vapor。如果在 macOS 下,也可以用 Vapor 生成 Xcode 工程,直接用 Xcode 开发:

$ cd HelloVapor
$ vapor xcode
Opening project in Xcode.

本系列其他文章