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

1.介绍

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

2.GO Mod的使用

尝试在本地新建一个hello项目并初始化,如下:
Go Mod的使用以及在github上发布使用
得到目录结构如下:
Go Mod的使用以及在github上发布使用
新建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的使用以及在github上发布使用
其中go.mod就是我们的包管理文件:
Go Mod的使用以及在github上发布使用
其中module指定了我们的包的名称,此处名称一定要是在托管平台下的路径,否则之后go get会找不到包。go 1.15申明go的版本。
哦哦,上面的test_go.go命名错,测试文件后缀必须要是_test,否则不会被检测到,目前目录结构如下:
Go Mod的使用以及在github上发布使用
执行测试用例观察是否通过:
Go Mod的使用以及在github上发布使用
go test时,go工具会帮我们检查项目里面的依赖并下载,此时go.mod文件如下:
Go Mod的使用以及在github上发布使用
其中多了一个require 后面时要求的包以及版本,另外目录下为多出一个go.sum文件:
Go Mod的使用以及在github上发布使用
一般不需要更改该文件,它存储着依赖包的校验码,防止相同的包重复下载。
完成后可以将我们的包打tag并提交到远程:
Go Mod的使用以及在github上发布使用
至此我们的包就可以通过go get安装了,我们新建一个项目:
Go Mod的使用以及在github上发布使用Go Mod的使用以及在github上发布使用
Go Mod的使用以及在github上发布使用
最后只要我们通过go get命令后,经过代理,就可以在go.dev上搜索到我们已经发布的包,所有人均可使用,如下:
Go Mod的使用以及在github上发布使用
结束。

上一篇:php-在opencart中上传zip文件扩展名时出现无效的文件类型错误


下一篇:PHP-如何获得没有货币符号的价格值?