关于go mod 的使用和goland 配置关于go mod 的配置

Posted xiaobaiskill

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于go mod 的使用和goland 配置关于go mod 的配置相关的知识,希望对你有一定的参考价值。

一、关于go modules

  • 1.1 go modules 是go1.11 新加的特性
    现在已有go 1.13.4 了本人用了就是最新版的
  • 1.2关于modules 官方定义
模块是相关Go包的集合。modules是源代码交换和版本控制的单元。 go命令直接支持使用modules,包括记录和解析对其他模块的依赖性。modules替换旧的基于GOPATH的方法来指定在给定构建中使用哪些源文件。
  • 1.3 使用modules 的配置
    • 配置GO111MODULE
      GO111MODULE 有三个值 off , on,auto
GO111MODULE=off,go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找。
GO111MODULE=on,go命令行会使用modules,而一点也不会去GOPATH目录下查找。
GO111MODULE=auto,默认值,go命令行将会根据当前目录来决定是否启用module功能。这种情况下可以分为两种情形:
  • 1.4 本人配置
    export GO111MODULE=auto
因为以前没有使用 ,未来兼容以前的项目,暂设成auto

二、go mod 的一些命令

命令 说明
download download modules to local cache(下载依赖包)
edit edit go.mod from tools or scripts(编辑go.mod
graph print module requirement graph (打印模块依赖图)
init initialize new module in current directory(在当前目录初始化mod)
tidy add missing and remove unused modules(拉取缺少的模块,移除不用的模块)
vendor make vendored copy of dependencies(将依赖复制到vendor下)
verify verify dependencies have expected content (验证依赖是否正确)
why explain why packages or modules are needed(解释为什么需要依赖)

三、如何使用 go mod

  • 3.1 简单使用
mkdir hello
cd hello 
go mod init hello 
# 此时会出现一个hello下会出现一个 go.mod 目录
# 需要下载 第三方包时 go get need-pack
# 下载好的第三方包会放在~/go/pkg/mod
# 如果你想放在当前目前可以执行如下命令
go mod vendor  
# 此时你的包就会出现在vendor下了
  • 3.2 关于依赖升级
go list -m -u all 来检查可以升级的package
go get -u  升级所有依赖
go get -u need-pack 升级指定的依赖  
  • 3.3 关于依赖打包
go build -mod=vendor -o app ./main.go

四、goland的配置

goland 升级到最新的,旧的goland 版本时不支持的,
在preferences -> go -> Go Modules(vgo) 
给Enable Go Modules (vgo) Integration 打勾勾就行

技术图片

以上是关于关于go mod 的使用和goland 配置关于go mod 的配置的主要内容,如果未能解决你的问题,请参考以下文章

解决Goland错误:$GOPATH/go.mod exists but should not

解决Goland错误:$GOPATH/go.mod exists but should not

解决Goland错误:$GOPATH/go.mod exists but should not

解决Goland错误:$GOPATH/go.mod exists but should not

goland无法解析go mod问题解决

Mac下Goland设置为go mod模式