go module 基本使用及Goland IDE的设置

go module简介

github地址 https://github.com/golang/go/wiki/Modules

go版本在1.13及以后使用了官方自带的go依赖管理库go module进行管理。

将某个项目(文件夹)下的需要的依赖包及版本等写入到一个 文件,使用之后代码就可以不放置在src下了

开启和设置代理请参考https://blog.csdn.net/fbbqt/article/details/中的代理设置

状态

go在1.13及之后的版本默认是auto,默认模式,当前目录在GOPATH/src目录之外而且包含go.mod文件才会启用

设置go module为 on(全部开启)/off(全部不开启)

Windows系统:

Linux/Mac系统:

然后输入来检查

查看 选项,为 代表修改成功

初始化 go.mod

项目刚开始的时候,项目中还没有文件。

进入你的项目文件夹

然后执行以下命令:

(demo为项目名)

然后在项目根目录就会出现一个 go.mod 文件

注意,此时只进行了初始化, go.mod 文件只标识了项目名和go的版本

添加缺失的模块以及移除不需要的模块

该命令会根据你的项目检测该文件夹目录下需要引入的依赖,并把依赖写入 go.mod 文件,写入后就会发现 go.mod 文件有所变动

获取依赖库

我们需要把依赖下载至本地,但不是使用 go get

注:如果GOPROXY没有设置好或设置的镜像不好会导致速度太慢,甚至下载不动

在项目文件夹中生成vendor(放项目依赖的所有包)文件夹后,再把项目文件夹放到没有依赖包的新环境中时,也可以直接运行

执行完成后会将依赖全部下载到 GOPATH 下,会在根目录下生成 go.sum 文件, 该文件是依赖的详细依赖,

但我们的项目文件夹并没有放到 GOPATH 下,那下载至到 GOPATH 下的依赖是没有用的,也就找不到这些包,就没法用

生成vendor文件夹,放置go.mod文件描述的依赖包

执行此命令,会将刚才下载到 GOPATH 下的依赖转移到该项目根目录下的 vendor(自动新建) 文件夹下

此时我们就可以使用这些依赖了

Goland 设置开启 Go Module

Goland IDE默认是关闭该功能的,我们需要手动打开。都打上勾,因为我是在系统变量中设置了,所以这里这里就没有设置。

在这里插入图片描述

更新依赖

是指项目引入了新的包依赖,更新依赖从检测依赖执行即可,不需要初始化,即

新增依赖

直接在项目中 import 这个包,之后更新依赖即可

go nodule常用命令

# 手动修改依赖文件

# 打印依赖图

官方依赖库管理命令

设置代理:

是用来依赖管理的,所以使用 时无需使用 命令( 如果要指定包的版本或者更新指定的包可以使用go get)

设置代理参考文档 https://github.com/goproxy/goproxy.cn/blob/master/README.zh-CN.md