Swift 4:使用Swift Package Manager的本地依赖关系?

时间:2018-04-13 14:41:50

标签: swift linux dependencies swift-package-manager

我正在将相当大的代码库从Java移植到服务器端Swift 4.这段代码本身将在macOS上开发,但最终部署在Linux上。我使用Swift Package Manager创建了单独的模块项目。其中一些是库项目,最终是一个可执行文件,将它们连接在一起以启动。我为每个模块生成了Xcode项目文件,以便我可以在Xcode中轻松开发,并且我已经创建了一个Xcode工作区,将它们组合在一起成为一个视图。

我的问题是,如何指出这些本地模块之间的依赖关系?我的可执行模块显然将依赖于所有库模块。我如何在Package.swift文件中表示这一点?我尝试过这样的事情......

let package = Package(
    name: "MySwiftExe",
    dependencies: [
        //.package(url: "../MySwiftLib", from: "1.0.0"),

...

但那无法建立。有没有办法指定位于同一文件系统上的依赖项?或者我 必需 从Git获取依赖项?

2 个答案:

答案 0 :(得分:3)

您的URL可以是相对的,因此../MySwiftLib是完全有效的。但是,源目录必须是git存储库。建议对此仓库进行标记,但您也可以这样做:

.package(url: "../MySwiftLib", .branch("master")

如果您想使用master分支上的任何代码。

希望这会有所帮助!

答案 1 :(得分:2)

将网址值设置为file:///path/to/swiftlib

let package = Package(
name: "MySwiftExe",
dependencies: [
    .package(url: "file:///path/to/MySwiftLib", from: "1.0.0"),

...