栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

Go Mod的使用以及在github上发布使用

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Go Mod的使用以及在github上发布使用

1.介绍

在Go 1.11之后go的包管理工具就已经开始转向使用Go Module而不是GOPATH了,输入go env就可以看到自己的go 版本以及GO111MODULE是否打开,如下:
上面GO111MODULE表示 GO mod是否打开,GOPATH是go get后包的存放路径,GOPROXY则是设置的代理。

2.GO Mod的使用

尝试在本地新建一个hello项目并初始化,如下:

得到目录结构如下:

新建hello.go文件:

package hello

import (
	"rsc.io/quote/v3"
)

// hello
func Hello() string {
	return quote.HelloV3()
}

func Proverb() string {
	return quote.Concurrency()
}

test_hello.go:

package hello

import "testing"

func TestHello(t *testing.T) {
	want := "Hello, world."
	if got := Hello(); got != want {
		t.Errorf("Hello() = %q, want %q", got, want)
	}
}

func TestProverb(t *testing.T) {
	want := "Concurrency is not parallelism."
	if got := Proverb(); got != want {
		t.Errorf("Proverb() = %q, want %q", got, want)
	}
}

然后执行 go mod init,如下:

其中go.mod就是我们的包管理文件:

其中module指定了我们的包的名称,此处名称一定要是在托管平台下的路径,否则之后go get会找不到包。go 1.15申明go的版本。
哦哦,上面的test_go.go命名错,测试文件后缀必须要是_test,否则不会被检测到,目前目录结构如下:

执行测试用例观察是否通过:

go test时,go工具会帮我们检查项目里面的依赖并下载,此时go.mod文件如下:

其中多了一个require 后面时要求的包以及版本,另外目录下为多出一个go.sum文件:

一般不需要更改该文件,它存储着依赖包的校验码,防止相同的包重复下载。
完成后可以将我们的包打tag并提交到远程:

至此我们的包就可以通过go get安装了,我们新建一个项目:


最后只要我们通过go get命令后,经过代理,就可以在go.dev上搜索到我们已经发布的包,所有人均可使用,如下:

结束。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/945457.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号