[英]Multiple targets in Vapor Xcode project
我正在Xcode中使用Vapor,将其部署到Heroku。 我的网络应用程序运行正常。 对于Vapor以及将其部署到Heroku多么容易,我感到非常满意。
我现在正在尝试在同一项目中创建一个单独的Heroku Worker进程。 我已将新工作程序添加到我的Heroku Procfile中,但不清楚如何在Xcode项目中设置第二个目标,以免每次我运行vapor xcode
重建项目文件时它都不会被覆盖。
我的Procfile看起来像这样:
web: App --env=production --workdir=./ --config:servers.default.port=$PORT --config:postgresql.url=$DATABASE_URL
worker: Worker --env=production --workdir=./ --config:servers.default.port=$PORT --config:postgresql.url=$DATABASE_URL
因此,正如您所看到的,我只想要一个名为Worker
的第二个应用程序可执行文件,即可在Heroku worker dyno中启动。
知道如何在Xcode项目中拥有一个Web App目标和一个单独的worker目标,而这些目标不会被vapor xcode
覆盖吗?
谢谢--TJ
啊哈! 解决了。 为了在项目中具有多个目标,您需要在负责构建项目文件的Swift软件包管理器的Package.swift文件中定义它们。
因此,我的Package.swift现在看起来像这样:
import PackageDescription
let package = Package(
name: "myapp",
targets: [
Target(name: "App", dependencies: ["Shared"]),
Target(name: "Worker", dependencies: ["Shared"]),
],
dependencies: [
],
exclude: [
"Config",
"Database",
"Localization",
"Public",
"Resources",
]
)
我的Sources目录结构现在看起来像这样:
Sources | - App - Worker - Shared
共享目标包含App和Worker可执行目标所需的所有共享代码。
现在,按上面的定义Procfile可以正常工作。 我现在有一个Web应用程序和一个工作进程。
干杯-TJ
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.