You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Swift Package Manager创建不干扰原有包结构的Package 3?

可以通过Swift Package Manager实现且不破坏原有结构

完全可以做到,SPM支持通过路径引用现有目录中的文件来构建新包,无需移动或修改原有Package 1、Package 2的文件结构。具体实现方式如下:

步骤1:创建Package 3的基础结构

在与Package 1、Package 2同级的目录下新建Package3文件夹,执行初始化命令创建SPM包(根据需求选择库或可执行文件类型):

swift package init --type library

步骤2:修改Package3的配置文件

打开Package3目录下的Package.swift,在target的sources参数中直接指定原有文件的相对路径,示例配置如下:

// swift-tools-version: 5.9
import PackageDescription

let package = Package(
    name: "Package3",
    products: [
        .library(
            name: "Package3",
            targets: ["Package3"]),
    ],
    targets: [
        .target(
            name: "Package3",
            sources: [
                "../Package1/file12.swift",
                "../Package1/folder/file13.swift",
                "../Package2/folder/file23.swift"
            ]),
    ]
)

关键说明

  • 这种方式只是引用文件路径,不会对原有Package 1、Package 2的文件或目录结构做任何修改,完全保留它们的独立性。
  • 如果引用的文件依赖原有包中的其他文件(比如file12依赖file11),需要将依赖的文件也添加到Package3的sources中,否则会出现编译错误。
  • 也可以选择在根目录创建一个统一的Package.swift,将三个包作为子target管理,同样能实现复用文件且不破坏原有结构的效果。

内容的提问来源于stack exchange,提问作者ejejes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 21:22:13