如何在从命令行编译的Swift应用程序中使用文件夹?

时间:2017-03-15 20:32:52

标签: swift swift3 swift-package-manager

我正在使用Swift3和Swift Package Manager构建一个简单的Web服务器。在项目文件夹中运行swift build将构建Sources目录中找到的所有源并输出可执行文件。但是,我发现如果我在Sources目录中创建文件夹来组织我的代码,我的构建就会失败。它看起来像文件夹的存在导致swift将源视为不同的模块。这是原因,如果是,我该如何解决它?

1 个答案:

答案 0 :(得分:1)

是。将目录直接放在Sources下将导致SwiftPM将这些解释为模块。这在package manager reference

中有所描述

要解决此问题,请使用另一级别的间接:将模块的目录放在Sources中,将其他目录放在该目录中:

Sources/YourApp/Stuff/Source1.swift
Sources/YourApp/Stuff/Source2.swift
Sources/YourApp/MoreStuff/Source3.swift
Sources/YourApp/MoreStuff/Source4.swift