Go语言版本控制学习时遇到的问题

探究GoPath和GoModuld的区别

自从go语言引入的gomod之后,我们需要区分一下

1.使用GoPath需要将go111module设置为off,这样在去导包的时候就从%goroot%/src
与%gopath%/src下面根据导包的路径去查找包
那么这种情况下你任何文件导入的每一个包都得去这两个目录下去找一遍,即使说你现在想导入
当前项目其它目录下的包,你也得从头开始一点点的写这个路径,就想下面这里的导入app一样,
你得从头开始写,而且我们还得注意到一点就算你这个项目必须得建立在GoPath下面了(下面
这个项目的路径是E:\GoWork\src\go.introduce\chapter02\code05,我的GoPath是
E:\GoWork),同时在这种情况下你去go get下来的包也会放在gopath/src下面
2.当开启了go111moudle之后,如果你设置为auto,那么就得分下面几种情况来讨论了:
	2.1 你的项目在GoPath的src之外或者你为你的项目使用了go.mod,那么他就是on
	2.2 如果你的项目在GoPath之内且没有使用go.mod那么就是等同于off,如果使用了
	go.mod文件那么就是on
如果显示的设置为on或者off,那么就是on或者off了,对于on的情况而言,我们导包路径就是在
GoPath/pkg/mod/....找了,如果使用了go get 也是会下载到这个包里面来,同样对于开启
MODULE的项目而言,导入自己本项目的包的方式就是从go.mod所在的目录出发然后写到你要导
入的那个包所在的目录即可,如下面第二张图片所示(这里下面这个图片的code05是和go mod 
init时命名的名字一样,如果你命名时写的code0hhash,那么你下面就应该写code0hhash,
这个时候code0hhash依然代表code05这个目录(实际的物理目录)),当完成代码编写后,在
此时执行项目会生成一个go.sum文件,这个文件的具体含义主要是来做检测的
(当然开启了MODULE后正常的fmt这类的还是在goroot)
3.关于写道对应包路径后由于包名和文件所在目录不一致的问题,去看下面第三张图




参考:
GO: go.mod go.sum

接下来既然我们已经来到了GoMODULE的时代,我们就用GoMODULE就行了,那么下面我们来一个案例展示如何将我们自己的包上传到github上作为第三方包使用。

My_three_party_package_of_go
在这里插入图片描述
参考:
发布golang第三方包

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值