安徽建设厅网站怎么打不开,安阳县地图全图,网站建设实训意义,客户网站制作管理系统导语我们都知道在Golang中我们一般都是设置GOPATH目录#xff0c;这个目录主要存放我们的第三方包#xff0c;这个方式一直不是很方便#xff0c;今天给大家介绍Go 1.11版本中推出的GoModul使用方法#xff0c;学过java的同学#xff0c;可能对maven包有所了解#xff0c…导语我们都知道在Golang中我们一般都是设置GOPATH目录这个目录主要存放我们的第三方包这个方式一直不是很方便今天给大家介绍Go 1.11版本中推出的GoModul使用方法学过java的同学可能对maven包有所了解Model的包管理类似于这种方式。使用之前的准备在安装Go版本后这个功能默认是关闭的需要我们手动设置环境变量进行开启设置方式如下//go命令行将不会支持module功能
O111MODULEoff
//go命令行会使用modules而一点也不会去GOPATH目录下查找。
GO111MODULEon
//自动进行
GO111MODULEauto开始使用为了更加直观的看到model使用之后的好处建议在GOPATH目录之外进行创建一个目录进行练习首先我们创建如下目录结构main.gopackage mainimport (log github.com/sirupsen/logrus
)func main() {log.WithFields(log.Fields{animal: walrus,}).Info(A walrus appears)
}接着我们用go mod命令初始化我们的目录go mod init main运行成功后我们会看到在我们的目录结构中出现了go.mod的文件module maingo 1.12现在我们开始直接运行我们的代码执行命令go run ./main在控制台会出现如下输出这些输出便是将需要的包进行版本下载同时显示了我们的程序代码的输出并且在我们的目录结构中同时又添加了一个文件go.sum如下图所示存放着我们包的具体信息发布版本引用自己封装的包有时候我们自己写了一个包包中提供了一些公用的方法应该如何利用model进行管理呢首先我们创建如下目录add.gopackage commonfunc Add(a, b int64) int64 {return a b
}现在我们开始初始化mod在我们的主目录使用如下方式go mod init github.com/yuwe1/modpratice然后使用git初始化我们的仓库git init
git remote add origin gitgithub.com:yuwe1/modpratice.git
git add demo2/ go.mod
git commit -am add Add func
git push --tags
git push -u origin master仓库显示如下现在让我们创建另一个目录main.gopackage mainimport (fmtgithub.com/yuwe1/modpratice/demo2/common
)func main() {fmt.Println(common.Add(1, 2))
}使用如下命令go mod init main
go run ./main显示结果如下【成功显示出了我们最终的结果。】修改版本在上面的使用中我们成功的引用了自己的代码但是如果我们仓库的代码进行了升级我们进行了修改之后又该如何引用最新的代码呢比如修改Add函数package commonimport (fmt
)func Add(a, b int64) int64 {fmt.Println(修改了Add函数)return a b
}此时我们只需要添加一个新的版本就行了命令如下git add ../demo2/common/add.go
git commit -m fix Add and add hello
git tag v1.0.1
git push --tags origin master最终我们看到了仓库多了一个版本现在我们使用最新的版本直接go get 命令如下go get github.com/yuwe1/modpraticev1.0.1我们首先看一下go.sum里的文件,可以看到多了一个版本现在我们重新运行会发现输出的结果已经发生了改变。Go Model的其它命令go mod tidy //拉取缺少的模块移除不用的模块。
go mod download //下载依赖包
go mod graph //打印模块依赖图
go mod vendor //将依赖复制到vendor下
go mod verify //校验依赖
go mod why //解释为什么需要依赖
go list -m -json all //依赖详情