将模块名称设置为与SwiftPM中的目录名称不同
我有一个Swift库,包含一个核心模块和可选的奖金模块。我想使用以下目录布局,映射到导出的Swift包名称,如图所示:将模块名称设置为与SwiftPM中的目录名称不同,swift,swift3,swift-package-manager,Swift,Swift3,Swift Package Manager,我有一个Swift库,包含一个核心模块和可选的奖金模块。我想使用以下目录布局,映射到导出的Swift包名称,如图所示: Taco/ Source/ Core/ → import Taco Toppings/ → import TacoToppings SideDishes/ → import TacoSideDishes 在我看来,这是一个合理的项目布局。但是,如果我读对了文档,这将用“Core”等无用的名称污染全局模块名称空间。SwiftPM
Taco/
Source/
Core/ → import Taco
Toppings/ → import TacoToppings
SideDishes/ → import TacoSideDishes
在我看来,这是一个合理的项目布局。但是,如果我读对了文档,这将用“Core”等无用的名称污染全局模块名称空间。SwiftPM似乎只会导出名称与目录名相同的模块,因此我必须这样做:
Taco/
Source/
Taco/
TacoToppings/
TacoSideDishes/
有没有办法配置Package.swift
以使用上面整洁的目录布局,并且仍然导出所需的模块名称
或者,是否有可能将核心、配料和配菜模块制作成项目的内部模块,并将它们全部作为一个大的玉米卷模块输出到世界上?目前没有一个干净的方法来实现这一点,但这似乎是一个合理的要求。我建议您在提交一个增强请求 有一种“黑客”方式可以做到这一点: 在所需的内部布局中创建源:
Sources/Core
Sources/Toppings
为所需模块名称添加其他符号链接:
ln -s Core Sources/Taco
ln -s Toppings Sources/TacoToppings
向清单中添加exclude
指令以忽略不需要的模块名称:
let package = Package(
name: "Taco",
exclude: ["Sources/Core", "Sources/Toppings"]
)
是否有可能将核心、配料和配菜模块制作成项目的内部模块,并将它们作为一个大的玉米卷模块输出到世界各地
不,不幸的是,目前没有办法做到这一点,需要大量的编译器工作才能支持。谢谢。我想说符号链接比较长的目录名更糟糕——但在表上有选项总是好的!