关于go.mod
go.mod
是Go项目的依赖描述文件,该文件主要用来描述两个事情:
- 当前项目名(
module
)是什么。每个项目都应该设置一个名称,当前项目中的包(package
)可以使用该名称进行相互调用。 - 当前项目依赖的第三方包名称。项目运行时会自动分析项目中的代码依赖,生成
go.sum
依赖分析结果,随后go编译器会去下载这些第三方包,然后再编译运行。
我们将之前的hello world
项目做一些改变,增加一个go.mod
文件(也可以在项目根目录下使用 go mod init 项目名称
命令初始化项目生成该文件),内容如下:
其中,my-hello
为当前项目的名称,可以随意设置。
就这样简单便完成了项目的module
初始化。
一般情况下,go.sum
依赖分析文件应当被添加到版本管理中随着go.mod
文件一起提交。
使用go.mod
使用go.mod
意即用go.mod
进行项目依赖管理。我们有两种go.mod
的使用方式:IDE-vgo
和命令行
方式。以下我们通过下载使用框架来演示如何使用这两种方式来管理依赖。
vgo
是基于Go Module
规范的包管理工具,同官方的go mod
命令工具类似。
设置
Goland
启用vgo
其中
Proxy
请输入代理地址下载依赖包,如果选择direct
表示不使用代理。可选择的反向代理地址有:https://goproxy.cn
https://goproxy.io
https://mirrors.aliyun.com/goproxy/
详见Go官网说明:
这里请务必选择一个代理地址输入。
手动修改
go.mod
文件如下:``` module my-hello
```
增加`GoFrame`框架的依赖,其中`latest`表示使用最新版本,IDE将会立即去更新下载框架代码。成功后,IDE将会修改`go.mod`文件并生成`go.sum`依赖分析文件。
![](/projects/GoFrame-2.0-zh/9d68ec8de3007306ccf185e3396472c0.png)
随后
go.mod
文件被自动更新为:``` module my-hello
如果下载最新代码框架后出现下图情况:https://www.jetbrains.com/help/go/create-a-project-with-vgo-integration.html
请按快捷键
⌥(option)+↩(return)
或者 鼠标右键, 选择随后等待几秒钟之后, 可以看到左侧的
Go Module
已经有内容,并且中终端自动输出了下载的框架版本
使用命令行
打开
Terminal
,在项目根目录下执行:export GO111MODULE=on GOPROXY=https://goproxy.cn; go get -u github.com/gogf/gf
该命令将会立即下载最新稳定版本的
GoFrame
框架。其中export GO111MODULE=on;
表示开启Go Module
特性(Go1.11.x
版本默认关闭,需要手动开启),export GOPROXY=https://goproxy.cn
表示使用代理下载,原因你懂的,并且也能极大提高依赖包下载速度。代理地址也可使用:https://goproxy.io
https://mirrors.aliyun.com/goproxy
随后
go.mod
文件内容被自动更新为:``` module my-hello
使用GoFrame
我们将之前的hello.go
修改如下:
package main
import (
"fmt"
"github.com/gogf/gf"
)
func main() {
}
运行结果如下:
恭喜,你已经学会了特性的基本使用啦!