Golang modules包依賴管理工具


初始化

執行go mod  init module-name,其中module-name為包名字,執行完后會生成go.mod文件,如下

module module-name

go 1.13

拉取依賴

go get ***

如:go get  github.com/jinzhu/gorm

更多參數

用 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/text@v0.3.2
拉取 hash 為 342b231 的 commit,最終會被轉換為 v0.3.2:go get golang.org/x/text@342b2e
用 go get -u 更新現有的依賴
用 go mod download 下載 go.mod 文件中指明的所有依賴
用 go mod tidy 整理現有的依賴
用 go mod graph 查看現有的依賴結構
用 go mod init 生成 go.mod 文件 (Go 1.13 中唯一一個可以生成 go.mod 文件的子命令)
用 go mod edit 編輯 go.mod 文件
用 go mod vendor 導出現有的所有依賴 (事實上 Go modules 正在淡化 Vendor 的概念)
用 go mod verify 校驗一個模塊是否被篡改過

包管理

使用go build,go test以及go list時,go會自動得更新go.mod文件,將依賴關系寫入其中。

如果想手動處理依賴關系,那么使用如下的命令:

go mod tidy

初始化項目

go get拉取新的依賴,如引入go-gin

go mod init github.com/jihite/go-gin-example

執行完后,go.mod如下

module github.com/jihite/go-gin-example

go 1.13

require (
    github.com/gin-gonic/gin v1.5.0
    github.com/go-playground/universal-translator v0.17.0 // indirect
    github.com/golang/protobuf v1.3.3 // indirect
    github.com/json-iterator/go v1.1.9 // indirect
    github.com/leodido/go-urn v1.2.0 // indirect
    github.com/mattn/go-isatty v0.0.12 // indirect
    github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
    github.com/modern-go/reflect2 v1.0.1 // indirect
    golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5 // indirect
    gopkg.in/go-playground/validator.v9 v9.31.0 // indirect
    gopkg.in/yaml.v2 v2.2.8 // indirect
)

其中indirect 是非直接依賴

同時多了go.sum文件,如下

github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=
github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=
github.com/gin-gonic/gin v1.5.0 h1:fi+bqFAx/oLK54somfCtEZs9HeH1LHVoEPUgARpTqyc=
github.com/gin-gonic/gin v1.5.0/go.mod h1:Nd6IXA8m5kNZdNEHMBd93KT+mdY3+bewLgRvmCsR2Do=

go.sum羅列了當前項目直接和間接依賴的所有模塊版本,格式

模塊 版本號 SHA-256 哈希值

 

安裝指定依賴

go get -u github.com/smartwalle/dbs 

 

更新

go get package[@version]

示例

go get  github.com/gin-gonic/gin@master

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM