从使用golang开发项目以来,golang的项目代码依赖问题就一直困扰着我,主要是对gopath的用法不明了致使了项目结构很混乱,最近忽然想到一个很好的gopath用法,仔细研究了一下确实可行,这里就写下来了分享给你们参考git
首先我想实现的项目结构是,有一个单独的目录用来存放第三方开源库,而后我本身的多个golang项目能够共用这些开源库。
另外我不想每次切换项目的时候都去设置全局的gopath目录。github
我所使用的是mac环境,其余环境请自行研究配置方式,应该大同小异
首先在环境变量中设置golang
vi ~/.bash_profile
export GOPATH=/work/go/gopath
这里只设置共享的三方开源库存放目录,go get 安装的三方库都会存在这里bash
在编译项目的时候手动将项目跟目录添加到GOPATH后面spa
echo $GOPATHserver
/work/go/gopath开发
export GOPATH=$GOPATH:/work/go/loolgame
echo $GOPATHrem
/work/go/gopath:/work/go/loolgame文档
项目目录要在共享开源目录后面
最后执行编译命令
go install serverget
在编译器环境下咱们能够经过设置编译器中gopath环境来达到以上相同的目的
intelij IDEA
安装命令:go get golang.org/x/net,错误提示:package golang.org/x/net: unrecognized import path "golang.org/x/net",包文档地址:https://godoc.org/golang.org/...。
这个问题主要是由于golang.org 被墙了没法访问
简单的解决方案是
从https://github.com/golang/net下载,而后把目录改为golang.org/x/net。而后,万事大吉。
ps:有git的话能够直接 go get github.com/golang/net,没有的话本身手动下载放到src目录下便可。