Vapor Xcode 项目中的两个几乎相同的目标
Posted
技术标签:
【中文标题】Vapor Xcode 项目中的两个几乎相同的目标【英文标题】:Two almost identical targets in Vapor Xcode project 【发布时间】:2020-01-08 19:34:59 【问题描述】:我想配置 Package.swift 以便一个目标成为另一个目标的扩展,它们都应该从一个文件夹共享相同的代码,但对于“扩展”版本,还有一个额外的子文件夹。但是我尝试使用path
的配置失败并出现“重叠源”错误。那么,我怎样才能使两个目标具有相同的源文件夹?
.target(name: "App", dependencies: [ "Vapor" ... ], exclude: [ "Subfolder" ])
.target(name: "Extended", dependencies: [ "Vapor", ... ], path: "./Sources/App")
swift build ... error: target 'Extended' has sources overlapping sources...
【问题讨论】:
【参考方案1】:SwiftPM 严格要求一个目标拥有文件。所以你需要为你的文件建立一个合适的依赖链。
在这种情况下,听起来Extended
为App
添加了更多功能。如果是这样,您希望拥有App
目前所有的东西。然后让 Extended
依赖于 App
并构建它独有的所有东西。
这允许 1 个目标拥有源文件并允许 Extended
使用这些文件的一个实现。
【讨论】:
以上是关于Vapor Xcode 项目中的两个几乎相同的目标的主要内容,如果未能解决你的问题,请参考以下文章