我正在与Xcode的Vapor合作,部署到Heroku。我的网络应用程序正常工作。对蒸气以及部署到Heroku有多容易感到满意。
我现在正在尝试在同一项目中创建一个单独的HEROKU工作过程。我已经在我的Heroku Procfile中添加了新工作,但是我不清楚如何在Xcode项目中设置第二个目标,以便每次运行vapor xcode
重建项目文件时不会被覆盖。p>我的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
因此,如您所见,我只是想要一个可以在Heroku Worker dyno中启动的名为Worker
的可执行文件。
任何想法我如何在我的Xcode项目中拥有一个不会被vapor xcode
覆盖的XCode项目中的单独的Worker Target?
谢谢-TJ
啊哈哈!解决了。为了在项目中有多个目标,您需要在包装中定义它们。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
|
- App
- Worker
- Shared
共享目标包含我的所有共享代码,该代码和工人可执行的目标。
现在,定义上述procfile完美效果。我现在有一个网络应用程序和一个工作流程。
欢呼-TJ