初次使用go mod踩坑

今天下载b站的kratos 框架,按照教程执行了

GO111MODULE=on && go get -u github.com/go-kratos/kratos/tool/kratos

结果在gopath/src下找不到kratos代码,执行go get命令中途也没有报错,后来使用文件搜索在gopath/pkg/mod才找到了。

于是网上一查,当modules 功能启用时,依赖包的存放位置变更为$GOPATH/pkg,允许同一个package多个版本并存,且多个项目可以共享缓存的 module。

 

GO111MODULE

GO111MODULE 有三个值:offonauto(默认值)

  • GO111MODULE=off,go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找。
  • GO111MODULE=on,go命令行会使用modules,而一点也不会去GOPATH目录下查找。
  • GO111MODULE=auto,默认值,go命令行将会根据当前目录来决定是否启用module功能。这种情况下可以分为两种情形:

    • 当前目录在GOPATH/src之外且该目录包含go.mod文件
    • 当前文件在包含go.mod文件的目录下面。

 

goland不识别mod中的包

 

 

 


posted @ 2020-05-05 15:21  touhoufans  阅读(719)  评论(0)    收藏  举报