Go mod常用與高階操作

2021-10-06 16:26:08 字數 2408 閱讀 6021

1.11和1.12版本

將下面兩個設定新增到系統的環境變數中

go111module=on

goproxy=

1.13版本之後

這種方式並不會覆蓋之前的配置,需要先把系統的環境變數裡面的給刪掉再設定

go env -w go111module=on

go env -w goproxy=https://goproxy.cn,,direct

使用go module之後,go get 拉取依賴的方式就發生了變化

拉取最新的版本(優先擇取 tag)

go get golang.org/x/text@latest拉取 master 分支的最新 commit

go get golang.org/x/text@master拉取 tag 為 v0.3.2 的 commit

go get golang.org/x/[email protected]拉取 hash 為 342b231 的 commit,最終會被轉換為 v0.3.2:

go get golang.org/x/text@342b2e指定版本拉取,拉取v3版本

go get github.com/smartwalle/alipay/v3更新

go get -u初始化乙個moudle,模組名為你專案名

go mod init 模組名

目前所有模組版本資料均快取在 $gopath/pkg/mod和 ​ $gopath/pkg/sum 下

go mod download

以文字模式列印模組需求圖

go mod graph

刪除錯誤或者不使用的modules

go mod tidy

生成vendor目錄

go mod vendor

驗證依賴是否正確

go mod verify

查詢依賴

go mod why

更新到最新版本

更新到某個分支最新的**

go get github.com/gogf/gf@master更新到最新的修訂版(只改bug的版本)

清理moudle 快取

go clean -modcache

設定系統環境變數:export goproxy=

假如我在私有倉庫上有個hello/hi包,位址當然就是/hello/h

windows系統, 直接編譯,會報https 443埠連線錯誤,拉不到gitlab專案,當然了,因為gitlab 是http 80埠。

在專案所在目錄執行如下命令也是一樣報錯。

go mod download hello/hi

然後執行了一句命令:

go get -insecure hello/hi

這樣拉下來一次(如果配置了gopath環境變數,拉下來的包在gop

ath/

pkg/

mod裡

,否則是

在/pkg/mod裡,否則是在

gopath

/pkg

/mod

裡,否則

是在/go/pkg/mod裡)之後,神奇的事情發生了,直接編譯可以成功拉到gitlab上的包了。

並且執行如下命令也可以成功拉取了:

go mod download hello/hi

尷尬的是,再執行go get -insecure hello/hi反而報錯:missing dot in first path element

linux系統:

與windows設不設goprivate都一樣的情況略有差異,linux上必需要先設定環境變數goprivate="我的gitlab位址",告訴go這是乙個私有倉庫,不要用**去拉,而是直接拉。剩下的與windows一樣,還是要先執行一次go get -insecure hello/hi才行。

go mod常用操作說明

go mod 命令 go mod init 生成go.mod檔案 go mod tidy 整理現有的依賴 go mod graph 檢視現有的依賴結構 go mod edit 編輯go.mod檔案 go mod vendor 匯出專案所有的依賴到vendor目錄 go mod verify 校驗乙個...

三分鐘掌握Go mod常用與高階操作

環境 將下面兩個設定新增到系統的環境變數中 go111module on goproxy 需要注意的是這種方式並不會覆蓋之前的配置,有點坑,你需要先把系統的環境變數裡面的給刪掉再設定go env w go111module on 使用go module之後,go get 拉取依賴的方式就發生了變化g...

Go Mod常用指令

表頭表頭 go mod download go mod edit 編輯 go.mod 檔案 go mod graph 列印模組依賴圖 go mod init 初始化當前資料夾,建立 go.mod 檔案 go mod tidy 增加缺少的包,刪除無用的包 go mod vendor 將依賴複製到 ve...