繁体   English   中英

Vapor Xcode项目中的多个目标

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM