搜索
简帛阁>技术文章>详解go mod 使用方法

详解go mod 使用方法

go modules 是 golang 1.11 新加的特性。现在1.12 已经发布了,是时候用起来了。Modules官方定义为:

模块是相关Go包的集合。modules是源代码交换和版本控制的单元。 go命令直接支持使用modules,包括记录和解析对其他模块的依赖性。modules替换旧的基于GOPATH的方法来指定在给定构建中使用哪些源文件。

如何使用 Modules ?

  • 把 golang 升级到 1.11(现在1.12 已经发布了,建议使用1.12)
  • 设置 GO111MODULE

go mod是go的一个模块管理工具,用来代替传统的GOPATH方案。下面是基本的使用方法:

假设我现在想要创建一个项目来学习go的语法,项目名为grammar,路径为 E:/go/grammar。

1、进入grammar文件夹

2、初始化目录

go mod init dayrain.cn/grammar

dayrain.cn/grammar是一个标识,一般是 主机名+模块名

初始化后,会自动创建一个go.mod文件,有go的版本号,以及所依赖的模块信息。

3、导入自定义的模块

新建一个lib1包,写一个简单的加法函数

add.go

package lib1
func Add(a int, b int) int {
	return a + b
}

在start.go中调用此方法

package main
import (
	"dayrain.cn/grammar/lib1"
)
func main() {
	res := lib1.Add(1, 1)
	print(res)
}

运行结果(go run start.go):

4、导入本地没有的模块

比如我想用日志打印刚才的res,可以修改start.go文件

package main
import (
	"dayrain.cn/grammar/lib1"
	"github.com/golang/glog"
)
func main() {
	res := lib1.Add(1, 1)
	glog.Info(res)
}

这个时候vscode给出错误提示

运行 go build命令

提醒我们要先go get github.com/golang/glog 获取模块

获取成功后,go.mod多了一行require。

常用命令

1、初始化模块

go  mod  init   模块名 

2 、获取远程的模块

go get  模块名         

3、 查看当前依赖模块

go list -m all           

4、清除未使用到的依赖

go mod tidy  
目录1、进入grammar文件夹2、初始化目录3、导入自定义的模块4、导入本地没有的模块常用命令1、初始化模块2、获取远程的模块3、查看当前依赖模块4、清除未使用到的依赖gomodules是golan
https://wwwjianshucom/p/760c97ff644c1开启Gomodule111和112版本将下面两个设置添加到系统的环境变量中GO111MODULEonGOPROXYhttps:
文章目录gomod之坑背景项目mod实战主程序调用同目录里面的包主程序调用其他目录的包重要提醒问答FAQs1有些包由于特定网络原因无法访问怎么办?2公司通过gitlab搭建了私有库,二方依赖库下载不
hi,大家好,我是hhf。最近在做prometheus生态的cortex优化工作,遇到一个比较坑的gomod的问题,这里分享一下。我为什么将标题称为:如何欺骗Gomod呢?这个挺有意思的,这里先卖个关
使用gomod之后,想要在goland中有代码提示,有两种方式,一种是使用gopath下的goimport工具,另一种是使用gomod自身的管理工具我是用的是非gopath的方式,每次新建项目后总是报
1开启Gomodule111和112版本将下面两个设置添加到系统的环境变量中GO111MODULE=onGOPROXY=https://goproxyio113版本之后goenvwGO111MODUL
开发过程中,对新手来说,从看到php管理依赖包的确很方便,但是在go里面也有依赖包管理,常规用gomod介绍11、gomod是什么gomod是Golang111版本引入的官方包(package)依赖管
需要go升级到112或以上mkdirgomodtestcdgomodtestgomodinitgomodtest创建一个servergopackagemainimportgithubcom/astax
、关于gomodules11gomodules是go111新加的特性现在已有go1134了本人用了就是最新版的12关于modules官方定义模块是相关Go包的集合。modules是源代码交换和版本控
最近在跑一个项目clone完成代码之后需要进行构建,发现了如下问题<wiz_code_mirror>verifyinggopkgin/srcd/gogitv4@v4131/gomod:ch