【问题标题】:Shared code between projects as library without a repo?项目之间的共享代码作为没有仓库的库?
【发布时间】:2017-11-29 17:13:26
【问题描述】:

我有两个 Swift PM 项目,它们都使用一些通用代码,我可能希望将它们存储在一个单独的项目中,比如一个库,然后这两个项目就可以导入。

我已经使用 swift init --type 库等来构建一个库,但是是否有任何其他记录在案的方式可以将其包含在其他项目中,而无需将其提交到 github 并提供指向 repo 的链接快速包管理器?

我正在考虑构建库项目并有一个脚本将其复制粘贴到其他项目需要访问的地方(如果需要,在他们自己的目录中)

【问题讨论】:

    标签: swift swift-package-manager


    【解决方案1】:

    根据Swift Package Manager Usage documentation,一个 swift 包设计为用作 git 存储库。

    简单地说:[Swift] 包是一个带有语义版本标签的 git 存储库,其中包含 Swift 源代码和位于其根目录的 Package.swift 清单文件。

    也就是说,dependencies documentation section 声明依赖路径可以是本地路径

    [Dependencies] 是包所依赖的包列表。您可以指定任何有效 Swift 包的 URL(或本地路径)。

    请注意,git 标签对于管理包含哪个版本的依赖包很有用(需要)。

    // 1.5.8 ..< 2.0.0
    .package(url: "path/SharedPackage", .upToNextMajor(from: "1.5.8")),
    // Constraint to an arbitrary closed range.
    .package(url: "path/SharedPackage", "1.2.3"..."1.2.8"),
    // Branch and revision.
    .package(url: "path/SharedPackage", .branch("develop")),
    

    关键点:

    1. 将本地包视为同一个本地 git 存储库仍然可以使工作流与 Swift 包管理器设计保持一致。
    2. 不需要一些远程或额外的 git 存储库,因为可以使用 Swift 包的本地依赖路径。

    基本上,对于仅限本地、某些共享代码的用例,可能值得考虑以更简化和精简的方式使用 git。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-15
      • 2021-07-22
      • 1970-01-01
      相关资源
      最近更新 更多