请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Go mod 解决后的后续问题

  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回答

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 回复 有任何疑惑可以回复我~
  • 提问者 Echo鑫 #1
    非常感谢!其实第二个问题,根据改Goland的配置就可以了,启动enable go module 就可以。
    回复 有任何疑惑可以回复我~ 2019-05-17 20:09:04
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信