Go项目开发如何抛弃掉GOPATH

liuxuzxx · · 3275 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

前言

刚开始入坑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里面也显示能找到了,运行也正常了


有疑问加站长微信联系(非本文作者)

本文来自:掘金

感谢作者:liuxuzxx

查看原文:Go项目开发如何抛弃掉GOPATH

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3275 次点击  
加入收藏 微博
1 回复  |  直到 2019-07-31 16:44:54
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传