Golang-包管理
为什么需要包管理
在项目开发过程中会使用的外部的包,成熟的编程语言都有自己的包管理工具,比如说PHP的composer,Java的maven,node的npm,所以在1.11版本Golang引入了go mod的方式的管理包
go mod是怎么管理的
在空白项目地址输入命令 go mod init xxxx
xxxx代表项目的名称,项目中就多了go.mod文件
命名的时候尽量使用github.com/winslis2/xxxx 的命令方式,这样命名的原因是因为考虑到我们的包会被别人引用,当别人引用的时候go mod在找包的时候会直接根据这个地址查找
这个使用的require的前提是包已经发布到github
require的包会下载到GOPATH/pkg/mod文件中
怎么引入本地未发布的包
- 第一种方法 需要修改go.mod文件,增加replace替换
需要注意的是发布时要把replace去掉 - 第二种方法,使用work space(推荐)
执行go work
命令生成go.work文件
appdemo和test都是本地的项目(命名有点操蛋,为了做测试嘛),均未发布,这样两个本地项目就可以相互引入了,前提是go.mod也要require好才行,只是没有了replace
注意要golang 1.18+ 版本