2 回答

TA貢獻1828條經驗 獲得超13個贊
使用 go modules 是推薦的方法。您必須使用go mod vendor
命令將模塊復制到開發環境中的供應商目錄(顯然需要首先下載包)。go mod vendor
不會將軟件包下載到供應商目錄中,它會從您在開發環境中可能位于$GOPATH/pkg/mod
或類似的東西中的先前下載的模塊中復制它們,并將其保存在您的供應商文件夾中,以便在生產中您不需要下載它們。然后,您將使用go build -mod vendor
.
所以總結一下:
在您的代碼中導入您的包
獲取依賴進入
$GOPATH/pkg/mod
或類似路徑:(go get github.com/name/[email protected]
此步驟實際上是可選的)將包從復制
$GOPATH/pkg/mod
到vendor
:go mod vendor
編譯代碼:
go build -mod vendor

TA貢獻1794條經驗 獲得超8個贊
只是為了擴展您對問題的評論,是的,使用 go 模塊,但這仍然不能解決您的請求,您將需要使用模塊和 go modules 提供的供應商選項。然后您的所有依賴項將存儲在您的存儲庫內的供應商文件夾中,您簽入該文件夾,然后用戶只需簽出您的存儲庫并擁有所有依賴項。
還要查看 go env 變量GOFLAGS=-mod=vendor
,您需要為 go 工具設置它來查看您的供應商與檢查網絡(我在我們的構建管道上設置了它)
有關該 env 變量的詳細說明,請參閱https://github.com/golang/go/issues/27227
- 2 回答
- 0 關注
- 130 瀏覽
添加回答
舉報