Go mod 解决后的后续问题

来源:3-4 Go module模块化管理代码依赖

Echo鑫

2019-05-17

  1. 首先,我提出我之前go mod 问题的解决方案,全局GOPATH随意设置,项目别放入全局gopath下,假若是免费课过来的,你一定是设置了IDE的project gopath,因为老师那课就是这么设置的,所以需要把gopath去掉。如下:
    图片描述
    别按照老师的直接在一级目录下进行操作,因为你这样go mod init 生成的mod文件,肯定是在一级目录下,即resk-projects下,所以需要cd 进入到 src/imooc.com/resk中,再输入go mod init 包路径名,若不输入包路径名,则是默认的github上的项目地址。然后你再go get 基本就是走mod了。
  2. 问题1:不设置gopath后,goland就识别不了本地包。如下:
    图片描述
    不引入gopath,goland本地包的引用爆红怎么解决?
  3. 问题二go mod init 后面接的包路径名imooc.com/resk,有什么作用,有什么讲究嘛?
  4. 问题三:能不能设置gopath后,打开go111modules为on,来进行go mod 操作?
写回答

1回答

枫荇

2019-05-17

2. “问题1:不设置gopath后,goland就识别不了本地包。”,通过go mod来管理项目,这个需要在Goland中项目需要设置为为go module项目才可以,Goland才可以识别。

   “ 不引入gopath,goland本地包的引用爆红怎么解决?”gopath和go mod只能二选一,互斥的。通过go mod会自动引入包,但需要通过go mod tidy来查找并下载依赖包。

3.“问题二go mod init 后面接的包路径名imooc.com/resk,有什么作用,有什么讲究嘛?” 后面跟的是module name,由一系列包名组成,父子包名通过"/"分割,比如:x/y/z/.../... ,x、y、z、...名称都可以全部自定义,习惯性的第一个包名是所在公司的域名,第二个开始可以按照组织结构和项目来自由定义规范。

4. "问题三:能不能设置gopath后,打开go111modules为on,来进行go mod 操作?" 首先和第二个问题一样gopath和go mod只能二选一,在golang1.12.x开始默认go111modules为auto,使用go mod命令时会根据项目目录下面是否存在go.mod来判断,如果当前目录下面存在go.mod文件,就使用当前目录下面的go mod来管理和下载依赖;如果不存在,就一次向上文件夹搜索直到找到go.mod文件;如果不存在,那么就提示“

go: cannot find main module; see 'go help modules'


@Echo鑫同学学习非常认真,非常赞!加油喔!


0
1
Echo鑫
非常感谢!其实第二个问题,根据改Goland的配置就可以了,启动enable go module 就可以。
2019-05-17
共1条回复

仿微信抢红包 Golang实战多版本抢红包系统

Golang红包系统单体版+并发版+分布式+微服务版,四大金装版、超值必修课

582 学习 · 159 问题

查看课程