所以幾周來我一直在摸不著頭腦,在閱讀了幾個關于工作原理及其三個神奇目錄的資源后,$ go build我/bin仍然不太清楚如何使用自定義包構建 Golang 項目以及如何應該管理一個 git repo。/pkg/src讓我更詳細地解釋一下我的情況:我在與默認.../user/go/.... 對于我所有的項目,我有一個不同的目錄樹,其結構如下:projects | project-a | project-b | docs | media | scrum | project-b <-- git repo containg Go structure | .git | gitignore.txt | bin | pkg | src | custom-package-a | | foo.go | custom-package-b | | bar.go | | main.go | project-c我的projects目錄可以包含任何類型的項目:java、Unity3D、VisualC# 等...然后在其下的每個項目中,它包含一個帶有源代碼的 repo。我最近能夠通過添加projects/project-b/project-b到我的 GOPATH 來成功構建,因此它可以看到 src 目錄。即使構建正確,典型 Go 項目的文件結構應該是這樣的嗎?在我的 GOPATH 中,我刪除了原來的路徑user/go,只使用了項目目錄。當從 github 安裝其他包時,它們會包含在 repo 中,因為 GOPATH 沒有在其他任何地方設置,所以我的 repo 有這些不同的子模塊。將外部包安裝到 repo 中是明智之舉,還是應該將它們放入不同的 go 目錄中?我擔心這可能會使回購變得混亂。我可以包括我需要知道我是否正確使用自定義包。我的意圖是在我的代碼庫中采用面向對象的方法,并且我將每個包都視為一個類。制作自定義包以將它們視為類是一件明智的事情嗎?我發現有必要避免函數和變量之間的同名沖突。示例:package-a.GetThing(), package-b.GetThing()。這兩個函數產生相似(不完全)的輸出,但使用不同的數據集并需要不同的實現。projects/project-b/project-b/我的控制臺在我使用時處于打開狀態go build并且工作正常。如果我移動main.go到 src 內部,也一樣。一個問題是 Go 構建器奇怪地將編譯后的二進制文件放在我調用的同一目錄中go build。不應該go build將它放在bin目錄中,或者我是否需要在使用命令時強制執行輸出路徑?我知道 GOBIN,但它似乎沒有用。
1 回答
明月笑刀無情
TA貢獻1828條經驗 獲得超4個贊
從 Go 1.11 開始,你不需要使用 $GOPATH。
您可以使用go mod init [your repo]并運行go install,或者go build將為您下載 deps,并創建一個go.mod和文件來跟蹤 deps。go.sum
- 1 回答
- 0 關注
- 171 瀏覽
添加回答
舉報
0/150
提交
取消
