2017-05-03 83 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