時至今日Go的版本已經來到了1.12 在1.11的時候Go正式推出了go mod 在此之前dep等第三方依賴工具百花齊放。go mod出來之后有助於像java的maven一樣能夠有一個比較統一的代碼依賴管理。
1.go mod有哪些命令:
download download modules to local cache edit edit go.mod from tools or scripts graph print module requirement graph init initialize new module in current directory tidy add missing and remove unused modules vendor make vendored copy of dependencies verify verify dependencies have expected content why explain why packages or modules are needed
2.如何使用
執行 go mod init會初始化一個mod管理的項目 在項目路徑下會有兩個文件go.mod go.sum
//go.mod 示例 記錄的是依賴管理 module resources-server require ( github.com/gin-contrib/sse v0.0.0-20170109093832-22d885f9ecc7 // indirect github.com/gin-gonic/gin v1.3.0 github.com/go-yaml/yaml v2.1.0+incompatible github.com/golang/protobuf v1.2.0 // indirect github.com/json-iterator/go v1.1.5 // indirect github.com/mattn/go-isatty v0.0.4 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.1 // indirect github.com/ugorji/go/codec v0.0.0-20181116192919-e105254e6a51 // indirect gopkg.in/go-playground/validator.v8 v8.18.2 // indirect gopkg.in/yaml.v2 v2.2.1 // indirect )
// go.sum 記錄的是版本變更 github.com/gin-contrib/sse v0.0.0-20170109093832-22d885f9ecc7 h1:AzN37oI0cOS+cougNAV9szl6CVoj2RYwzS3DpUQNtlY= github.com/gin-contrib/sse v0.0.0-20170109093832-22d885f9ecc7/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= github.com/gin-gonic/gin v1.3.0 h1:kCmZyPklC0gVdL728E6Aj20uYBJV93nj/TkwBTKhFbs= github.com/gin-gonic/gin v1.3.0/go.mod h1:7cKuhb5qV2ggCFctp2fJQ+ErvciLZrIeoOSOm6mUr7Y= github.com/go-yaml/yaml v2.1.0+incompatible h1:RYi2hDdss1u4YE7GwixGzWwVo47T8UQwnTLB6vQiq+o= github.com/go-yaml/yaml v2.1.0+incompatible/go.mod h1:w2MrLa16VYP0jy6N7M5kHaCkaLENm+P+Tv+MfurjSw0= github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM=
3.關於“牆”的問題
設置代理export GOPROXY=https://goproxy.io 在以后的版本可能會逐步取消go path 自己下載包安裝比較麻煩 自行替換依賴也比較麻煩