在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
go modules亦称为go mod,是一种依赖管理方式,要求我们把依赖的包及其版本写在go.mod文件中,就好像java的pom.xml。 go.mod文件内容示例如下: module github.com/xxx/yy go 1.14 require ( github.com/gin-gonic/gin v1.6.3 ) go mod模式开发时,不要求把项目源码放在GOPATH下。执行go get时,会把依赖包下载到GOPATH中。 go get相当于java的Download Sources。go get -v ...,不行就go get -u ...。 go list -m ...用于查看所有依赖的包。 go build用于打包,相当于java的mvn package。可以用-o指定输出文件名称。 在开发机上需要设置GOPATH和GOROOT环境变量。 GOPATH指定依赖包要下载到哪个路径,好像maven setting中的一样。go 1.8之前必须设置,1.8之后(包括1.8)可以不设置。如果不显式设置的话,则默认是当前用户主目录下的go目录,即$HOME/go。 GOROOT指定go的安装路径 ,就像JAVA_HOME一样,可以不显式设置。 可以通过go env命令查看go各环境变量。如果在go build时遇到问题,先检查下环境变量是否配置正确。 如有网络错误,可设置代理 如果在国内, 可以设置go代理:go env -w GOPROXY=https://goproxy.cn,参考https://github.com/TarsCloud/TarsGo 也可以设置为https://goproxy.io,direct,参考https://goproxy.io/zh/ 可以通过go help mod查看有哪些go mod子命令,有如下 download:download modules to local cache go mod download xxx。 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。当在代码中使用了第三方库 ,但是go.mod中并没有跟着更新的时候,如果直接run或者build就会报missing go.sum entry for module providing package <package_name>,这时候执行以下go mod tidy就好了。 vendor:make vendored copy of dependencies verify:verify dependencies have expected content why:explain why packages or modules are needed |
请发表评论