go mod入门使用

go mod 初探

github.com 中建实验项目
git clone https://github.com/pislbert/MyGoTest.git

目标一 使用测试库打印

克隆项目测试库
https://github.com/pislbert/MyGoUtil.git

打印

package main

import(
	"github.com/pislbert/MyGoUtil/pt"
)

func main(){
	pt.Ptn("hello pislbert and sven!")
}

此时是无 go mod 状态的程序

启用go mod

$ go mod init

如果启用mod 会提示
go: modules disabled inside GOPATH/src by GO111MODULE=auto; see ‘go help modules’

按提示进行设置

$ export GO111MODULE=on
$ go mod init

提示 go: creating new go.mod: module MyGoTest
成功

继续运行程序

$ go run main.go
go: finding github.com/pislbert/MyGoUtil/pt latest
go: finding github.com/pislbert/MyGoUtil latest
hello pislbert and sven!

此时项目会多一个go.sum 用于校验仓库,同时又下载了最新的MyGoUtil库,然而其下载到的并不是之前的位置,而是在%GOPATH%\pkg\mod\github.com\pislbert中。
其实程序会先从当前工作区项目查找,未找到再去%GOPATH%\pkg\mod\github.com\pislbert中找,再没找到就去github.com中get下来。
接下来 将仓库 移到工作区中并删除 %GOPATH%\pkg\mod\github.com\pislbert 测试

将对应版本测试库移至工作区

将pkg 区库 拷贝到工作区,

$ go mod vendor

删除pkg相关的库并执行

$ go run main.go
go: extracting github.com/pislbert/MyGoUtil v0.0.0-20190307040828-c598e6772bf9
hello pislbert and sven!

可以看到没有执行go get,但其又会从工作区提取相关库到pkg 中。

还有种方式运行就是下下载测试库再运行
删除pkg 及 当前工作区的 库,然后执行

$ go mod download 				// 下载到pkg中
$ go run main.go						// 运行,得到结果,不会再下载了
hello pislbert and sven!

以上是go mod 的 入门使用了

你可能感兴趣的:(golang,go,mod)