Golang-包管理

为什么需要包管理

在项目开发过程中会使用的外部的包,成熟的编程语言都有自己的包管理工具,比如说PHP的composer,Java的maven,node的npm,所以在1.11版本Golang引入了go mod的方式的管理包

go mod是怎么管理的

在空白项目地址输入命令 go mod init xxxx xxxx代表项目的名称,项目中就多了go.mod文件
image
命名的时候尽量使用github.com/winslis2/xxxx 的命令方式,这样命名的原因是因为考虑到我们的包会被别人引用,当别人引用的时候go mod在找包的时候会直接根据这个地址查找
image
这个使用的require的前提是包已经发布到github
require的包会下载到GOPATH/pkg/mod文件中

怎么引入本地未发布的包

  • 第一种方法 需要修改go.mod文件,增加replace替换
    image
    需要注意的是发布时要把replace去掉
  • 第二种方法,使用work space(推荐)
    执行go work命令生成go.work文件
    image
    appdemo和test都是本地的项目(命名有点操蛋,为了做测试嘛),均未发布,这样两个本地项目就可以相互引入了,前提是go.mod也要require好才行,只是没有了replace
    注意要golang 1.18+ 版本
posted @ 2023-03-28 21:31  小刘的早餐店  阅读(33)  评论(0编辑  收藏  举报