一、关于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/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的更多相关文章

  1. GoLand配置数据库、远程host以及远程调试

    GoLand配置MySQL数据库: (1)右侧栏 -> Database -> +添加 (2)选择MySQL (3)修改Name -> Comment(可选) (4)选择MySQL版 ...

  2. GoLand——配置goproxy.io代理

    前言 由于众所周知的原因,也为了更好的下载go的包,所以找到了goproxy 配置 ctrl+alt+s->Go->Go Modules(vgo)->设置proxy为https:// ...

  3. Goland配置

    Global GOPATH 用来设置所有go项目的大目录 Project GOPATH 用来设置单项目目录 2个目录必须配置

  4. Goland在go mod vendor模式下无法识别某些库

    症状:go build可以正常编译,但代码编辑器里面提示找不到相关lib,后来发现是因为go.mod中没有用require这个库,补上库地址和版本.因为项目的mod vendor模式,版本一般不需要写 ...

  5. n对mod求模整除时转化成mod的数学式

    n对mod求模,它的值在0到mod-1之间,如果要求模整除的时候转化成mod可以用下面的式子: n = (n - 1 % mod + mod) % mod +1 这里先减一,模上mod再加一,这样如果 ...

  6. Linux基础之命令练习Day2-useradd(mod,del),groupadd(mod,del),chmod,chown,

    作业一: 1) 新建用户natasha,uid为1000,gid为555,备注信息为“master” 2) 修改natasha用户的家目录为/Natasha 3) 查看用户信息配置文件的最后一行 4) ...

  7. 【golang】golang 相关问题?

    1.golang 官网下载很慢: 中科大镜像:http://mirrors.ustc.edu.cn/golang/ 2.go get 下载依赖很慢的问题: https://goproxy.io/zh/ ...

  8. goland无法解析go mod问题解决

    Goland 版本是 2018.03 由于之前使用GOPATH方式进行存在很多项目,在怎么配置后都无法解析包,但是命令行时正常的. 这边设置全局的设置,开启goland的go mod包管理. 创建新项 ...

  9. GoLand安装配置

    目录 下载 安装 破解 运行 参考网址 GoLand配置 下载 1 下载路径:https://pan.baidu.com/s/1JJ-Oxx9NkEK-PrwcvLys7Q,提取码:o0e5 2 下载 ...

随机推荐

  1. 微信小程序自定义顶部

    wxml <view style="height:{{titleHeight}}px;background:{{background}}" class="user- ...

  2. PHP随手记2--获取随机n位不重复字符

    定义一个函数返回26英文字母中n位不重复随机字符 基本思路是利用内置函数生成随机数,取出该位置字母之后将其删除,再进行下一次随机,最后实现字符串拼接就ok! 代码很简单,通俗易懂,直接上代码吧: 1 ...

  3. vue爬坑之路1-路由跳转全新页面以及二级页面配置

    之前也在网找了一些答案,比较零碎,特此总结下,废话不多说,直接上干货! 路由跳转全新页面 首先在app.vue中先定义router-view,这是主路由. 在router的index.js中引入log ...

  4. 映射Map、队列Queue、优先级队列PriorityQueue

    映射Map 将对象映射到其他对象的能力是解决编程问题的有效方法.例如,考虑一个程序,它被用来检查 Java 的 Random 类的随机性.理想情况下, Random 会产生完美的数字分布,但为了测试这 ...

  5. Verilog实例数组

    编写 Verilog 代码多年,至今才无意中发现了一种奇怪的语法,估计见过的这种的写法的人,在 FPGA 开发者中不会超过 20% 吧. 直接来看代码吧.先定义了一个简单的模块,名为 mod. mod ...

  6. python 截屏操作

    方法1: 用pyscreenshot,https://pypi.org/project/pyscreenshot/ 方法2:用autopy,https://pypi.org/project/autop ...

  7. linux centos7 模拟垃圾回收站功能以及 crontab 定时任务的设置

    2021-08-04 1. 安装 环境:CentOS Linux release 7.5.1804 (Core) # 将 saferm.sh 拷贝到 /bin 目录下面 git clone git:/ ...

  8. 新版idea无法导入mavenweb模板

    目前没有任何办法,最好是下个旧版的

  9. Docker | 入门 & 基础操作

    Dcoker 入门 确保docker 已经安装好了,如没有装好的可以参考:Docker | 安装 运行第一个容器 docker run -it ubuntu /bin/bash docker run ...

  10. 多文件Makefile编写

    工作过程中,平时不怎么关注Makefile的书写规则,对于遇到的编译错误一般能看懂Makefile的基本规则也能解决.但如果想要编写Makefile文件还是有相当的难度的,更不用说包含多个目录和文件的 ...