关于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
GO111MODULE=off,go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找。
GO111MODULE=on,go命令行会使用modules,而一点也不会去GOPATH/src目录下查找。 (pkg 包都存放在 $GOPATH/pkg 下)
GO111MODULE=auto,默认值,go命令行将会根据当前目录来决定是否启用module功能。(pkg 包都存放在 $GOPATH/pkg 下)
- 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 mod download
# 下载第三包可以直接使用 go get need_pkg
# 下载好的依赖 和 版本 会加入到 go.mod 里面,
# 下载好的第三包 会放在到$GOPATH/pkg/mod 中
# 没有设置GOPATH的话 下载好的第三方包会放在~/go/pkg/mod
# 如果你想放在当前目前可以执行如下命令
go mod tidy
# 检测依赖的包,下载使用到的包,剔除未使用的包
# 如果你希望将第三方依赖包放至在本项目下,可以使用该命令,此时会将第三方依赖下载至vendor 目录中
go mod vendor
- 3.2 关于依赖升级
删除 go.mod中需要升级的第三方依赖
然后执行 go mod tidy ,会自动下载最新的。
关于依赖的版本也是可以指定的
在go.mod 中使用指定版本的话,可以自行设置。
- 3.3 关于依赖打包
go build  -ldflags="-s -w" -o app ./main.go
# -ldflags="-s -w" 压缩程序
- 3.4 github 拉取 他人含有go.mod的项目时,下载所有第三方包
go mod tidy
- 3.5 关于如何使用自定义包
hello
    |--conf
        |-conf.go
    |-main.go
    |-go.mod
如何导入conf 包呢?
先查看go.mod 中的module 后的定义的module_name
在导入时  直接使用module_name/conf   即可


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

上图的那个圈起来的地方一定要勾上,
Enable Go Modules(vgo)   启用modules 模式
verdoring mode  会使用vendor 文件夹中的包(不用打勾,打勾意味着依赖包都使用vendor 目录里面的.)
关于go mod 的使用和goland 配置 go mod的更多相关文章
- GoLand配置数据库、远程host以及远程调试
		GoLand配置MySQL数据库: (1)右侧栏 -> Database -> +添加 (2)选择MySQL (3)修改Name -> Comment(可选) (4)选择MySQL版 ... 
- GoLand——配置goproxy.io代理
		前言 由于众所周知的原因,也为了更好的下载go的包,所以找到了goproxy 配置 ctrl+alt+s->Go->Go Modules(vgo)->设置proxy为https:// ... 
- Goland配置
		Global GOPATH 用来设置所有go项目的大目录 Project GOPATH 用来设置单项目目录 2个目录必须配置 
- Goland在go mod vendor模式下无法识别某些库
		症状:go build可以正常编译,但代码编辑器里面提示找不到相关lib,后来发现是因为go.mod中没有用require这个库,补上库地址和版本.因为项目的mod vendor模式,版本一般不需要写 ... 
- n对mod求模整除时转化成mod的数学式
		n对mod求模,它的值在0到mod-1之间,如果要求模整除的时候转化成mod可以用下面的式子: n = (n - 1 % mod + mod) % mod +1 这里先减一,模上mod再加一,这样如果 ... 
- Linux基础之命令练习Day2-useradd(mod,del),groupadd(mod,del),chmod,chown,
		作业一: 1) 新建用户natasha,uid为1000,gid为555,备注信息为“master” 2) 修改natasha用户的家目录为/Natasha 3) 查看用户信息配置文件的最后一行 4) ... 
- 【golang】golang 相关问题?
		1.golang 官网下载很慢: 中科大镜像:http://mirrors.ustc.edu.cn/golang/ 2.go get 下载依赖很慢的问题: https://goproxy.io/zh/ ... 
- goland无法解析go mod问题解决
		Goland 版本是 2018.03 由于之前使用GOPATH方式进行存在很多项目,在怎么配置后都无法解析包,但是命令行时正常的. 这边设置全局的设置,开启goland的go mod包管理. 创建新项 ... 
- GoLand安装配置
		目录 下载 安装 破解 运行 参考网址 GoLand配置 下载 1 下载路径:https://pan.baidu.com/s/1JJ-Oxx9NkEK-PrwcvLys7Q,提取码:o0e5 2 下载 ... 
随机推荐
- 熟悉而陌生的新朋友——IAsyncDisposable
			本文作者--句幽 在.NET Core 3.0的版本更新中,官方我们带来了一个新的接口 IAsyncDisposable. 小伙伴一看肯定就知道,它和.NET中原有的IDisposable接口肯定有着 ... 
- 浅谈模拟彩票代码,html,javascript
			今天简单介绍一下用html,javascript来模拟双色球彩票选择器. 双色球彩票规则:由6个红球和1个蓝球组成,其中6个红球是从1-33中随机选出的不重复的6个数,从小到大一次排列:蓝球是1-16 ... 
- python下 conda命令手册
			0.说明: 对于tensorflow配合keras使用,因为linux服务器没有root权限,所以目前最高可用版本是 1.6.0,否则就会报错某些 so找不到 conda install -n xu ... 
- git cherry-pick 教程
			转自:http://www.ruanyifeng.com/blog/2020/04/git-cherry-pick.html 对于多分支的代码库,将代码从一个分支转移到另一个分支是常见需求. 这时分两 ... 
- tomcat中修改Web站点的默认根目录
			转自:http://blog.csdn.net/wzqcongcong/article/details/6387907 想把Tomcat的默认网站根目录修改成自己指定的目录,比如:F:/MyWeb.这 ... 
- 【C语言】第5章  循环结构程序设计
			第5章 循环结构程序设计 三种基本循环控制结构 使用while语句实现循环 先判断条件表达式,后执行循环体语句 while (循环条件表达式) { 循环体 } 用do-while语句实现循环 先无条件 ... 
- VS2017 提示找不到某个.dll库,或某个dll库丢失,原因
			可能因为那个dll的确不存在 可能因为需要在环境变量->系统环境变量->添加该dll所在目录 
- 登录用户出现‘’-bash-4.2$‘’的问题解决
			Linux系统切换用户时如显示的是-bash-4.2# 而不是user@主机名 + 路径的显示方式,以往一直用的脚本也不能执行起来: 原因是在用useradd添加普通用户时,有时会丢失家目录下的环境变 ... 
- python manage.py migrate出错
			python manage.py migrate出错 在建立Django项目过程中执行 python manage.py migrate命令,出现如下错误: 解决办法: 编辑D:\install fi ... 
- error: object file .git/objects/...
			cd .git find . -type f -empty -delete -print tail -n 2 .git/logs/refs/heads/master git show xxxx(版本号 ... 
