2017-03-15 58 views
1

我正在使用Swift3和Swift包管理器構建一個簡單的網絡服務器。在項目文件夾中運行swift build將構建Sources目錄中的所有源並輸出可執行文件。但是,我發現如果我在Sources目錄中創建文件夾來組織我的代碼,我的構建失敗。它看起來像文件夾的存在導致迅速將源視爲不同的模塊。這是原因嗎?如果是這樣,我該如何解決它?如何在命令行編譯的Swift應用程序中使用文件夾?

回答

1

是的。直接在Sources下放置目錄將導致SwiftPM將它們解釋爲模塊。這在package manager reference中描述。

要解決此問題,使用間​​接的另一個層面:把一個目錄,在模塊內部Sources和你的這個目錄中的其他目錄:

Sources/YourApp/Stuff/Source1.swift 
Sources/YourApp/Stuff/Source2.swift 
Sources/YourApp/MoreStuff/Source3.swift 
Sources/YourApp/MoreStuff/Source4.swift 
+0

好走!雖然我不得不說,我不知道爲什麼將此設爲默認行爲的理由是什麼?至少可以說,這絕對不是直覺。 –

相關問題