Go项目开发如何抛弃掉GOPATH

6,493 阅读2分钟

前言

刚开始入坑Go开发的时候,一直对项目的结构不明了,其次对整个项目引入自己写的包也是不明白怎么做。上网看到很多说是自己的项目要放到GOPATH的src目录下面才可以,当然GOPATH可以设计多个。但是,这个是go1.9的样子吧,之后go就退出modules(类似于maven)的包依赖管理工具。但是开始用的时候还是有点坑。 我的项目叫:terrorsaur,结构如下:

抛弃GOPATH

  1. 配置GOPROXY和GO111MODULE
在dos(windows)或者terminal(Linux)执行:go env (或者go env GOPROXY)查看GOPROXY环境变量。
如果为空,那就在环境变量添加下。

添加的环境变量如下
Linux:
export GOPROXY=https://goproxy.io
export GO111MODULE=on

Windows:
找到配置环境变量的地方加一下就行.
  1. 使用go的modules管理依赖
首先:到你的项目的目录下,我的是 E:/lx/terrorsaur
执行: go mod init terrorsaru      (注意:后面这个terrorsaur是我项目的名字,一定要记住要写名字,要不然自己import自己项目的package的时候会报找不到的错误,这个命令会生成一个go.mod文件)
接着执行:go run main.go  他会自动下载需要的模块,并且会生成一个go.sum文件,记录你需要的包以及对应的版本号

总结

碰到一个坑,跟着网上执行(首先进入到自己项目的目录,我的项目名字叫:terrorsaur):go mod init 之后查看go.mod 发现如下问题:

单纯使用go mod init命令
接着在运行:go run main.go的时候,出现:
libs是我写的一个package,愣是说找不到
libs是我自己写的一个package,但是他就是说找不到这个,我当时也是奇了怪,网上都这么干,他们怎么都正确 之后,修改了下命令,先把之前的go.mod和go.sum文件都给删除了,执行:go mod init terrorsaur
注意go.mod文件信息的首航变化
接着再次执行 go run main.go就很正常了,Idea里面也显示能找到了,运行也正常了