root@liubei:/data/goproject/src# mkdir go-test
root@liubei:/data/goproject/src# cd go-test/
package main
import "github.com/gin-gonic/gin"
func main() {
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "pong",
})
})
r.Run()
# go mod init
go.mod
文件root@liubei:/data/goproject/src/go-test# ls
go.mod main.go
module go-test
go 1.17
# go mod tidy
依赖的包会写到
go.mod
文件中
module go-test
go 1.17
require github.com/gin-gonic/gin v1.7.6
require (
github.com/gin-contrib/sse v0.1.0 // indirect
github.com/go-playground/locales v0.13.0 // indirect
github.com/go-playground/universal-translator v0.17.0 // indirect
github.com/go-playground/validator/v10 v10.4.1 // 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-20180228061459-e0a39a4cb421 // indirect
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742 // indirect
github.com/ugorji/go/codec v1.1.7 // indirect
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 // indirect
golang.org/x/sys v0.0.0-20200116001909-b77594299b42 // indirect
gopkg.in/yaml.v2 v2.2.8 // indirect
)
但此时 这些依赖在goland中看都是红色,说明这些依赖还没有被下载
# go build main.go
此时从goland中可以看到,这些包的引用都变成了绿色
作用:将依赖包拷贝到代码目录下
vendor
目录
# go mod vendor
vendor
目录root@liubei:/data/goproject/src/go-test# ll
总用量 8936
drwxr-xr-x 4 root root 4096 11月 24 19:48 ./
drwxr-xr-x 5 root root 4096 11月 24 18:45 ../
-rw-r--r-- 1 root root 870 11月 24 18:56 go.mod
-rw-r--r-- 1 root root 5037 11月 24 18:56 go.sum
drwxr-xr-x 2 root root 4096 11月 24 19:03 .idea/
-rwxr-xr-x 1 root root 9114818 11月 24 19:01 main*
-rw-r--r-- 1 root root 230 11月 24 18:52 main.go
drwxr-xr-x 5 root root 4096 11月 24 19:48 vendor/
# go build -mod vendor
说明:如果不使用 -mod则依然不会使用项目vendor中的依赖