2017-05-03 85 views
0

我正在使用Xcode中的Vapor,部署到Heroku。 我的网络应用程序工作完美。真的很满意Vapor,部署到Heroku有多容易。Vapor Xcode项目中的多个目标

我现在正在尝试在同一个项目中创建一个单独的Heroku工作进程。我已经将新工作人员添加到了我的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的工人赛道内启动。

任何想法如何我可以有一个Web应用程序目标和一个单独的工人目标在我的Xcode项目不会被vapor xcode覆盖?

感谢 --TJ

回答

1

啊哈!解决了它。为了在项目中拥有多个目标,您需要在Package.swift文件中为负责构建项目文件的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 | - App - Worker - Shared

的共享目标包含了所有的我的共享代码是App和Worker可执行目标所必需的。

现在,定义Procfile如上所述完美。我现在有一个Web应用程序和一个工作进程。

干杯 --TJ