所以幾周來我一直在摸不著頭腦,在閱讀了幾個關(guān)于工作原理及其三個神奇目錄的資源后,$ go build我/bin仍然不太清楚如何使用自定義包構(gòu)建 Golang 項目以及如何應(yīng)該管理一個 git repo。/pkg/src讓我更詳細地解釋一下我的情況:我在與默認.../user/go/.... 對于我所有的項目,我有一個不同的目錄樹,其結(jié)構(gòu)如下: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 來成功構(gòu)建,因此它可以看到 src 目錄。即使構(gòu)建正確,典型 Go 項目的文件結(jié)構(gòu)應(yīng)該是這樣的嗎?在我的 GOPATH 中,我刪除了原來的路徑user/go,只使用了項目目錄。當(dāng)從 github 安裝其他包時,它們會包含在 repo 中,因為 GOPATH 沒有在其他任何地方設(shè)置,所以我的 repo 有這些不同的子模塊。將外部包安裝到 repo 中是明智之舉,還是應(yīng)該將它們放入不同的 go 目錄中?我擔(dān)心這可能會使回購變得混亂。我可以包括我需要知道我是否正確使用自定義包。我的意圖是在我的代碼庫中采用面向?qū)ο蟮姆椒ǎ⑶椅覍⒚總€包都視為一個類。制作自定義包以將它們視為類是一件明智的事情嗎?我發(fā)現(xiàn)有必要避免函數(shù)和變量之間的同名沖突。示例:package-a.GetThing(), package-b.GetThing()。這兩個函數(shù)產(chǎn)生相似(不完全)的輸出,但使用不同的數(shù)據(jù)集并需要不同的實現(xiàn)。projects/project-b/project-b/我的控制臺在我使用時處于打開狀態(tài)go build并且工作正常。如果我移動main.go到 src 內(nèi)部,也一樣。一個問題是 Go 構(gòu)建器奇怪地將編譯后的二進制文件放在我調(diào)用的同一目錄中g(shù)o build。不應(yīng)該go build將它放在bin目錄中,或者我是否需要在使用命令時強制執(zhí)行輸出路徑?我知道 GOBIN,但它似乎沒有用。
1 回答

明月笑刀無情
TA貢獻1828條經(jīng)驗 獲得超4個贊
從 Go 1.11 開始,你不需要使用 $GOPATH。
您可以使用go mod init [your repo]
并運行go install
,或者go build
將為您下載 deps,并創(chuàng)建一個go.mod
和文件來跟蹤 deps。go.sum
- 1 回答
- 0 關(guān)注
- 147 瀏覽
添加回答
舉報
0/150
提交
取消