godep使用
安装:
1、mac:brew Install godep,全局可用
2、go get -u -v github.com/tools/godep  参数-u表示更新,-v可以看到进度信息。成功安装后,在$GOPATH的bin目录下会有一个godep可执行的二进制文件,后面执行的命令都是用这个,建议这个目录加入到全局环境变量中
Godeps.json文件
Godeps.json文件描述了工程依赖项。Godeps.json文件位于工程目录的子目录Godeps下
包管理使用 godep
工程目录应当是$GOPATH的子目录。以下命令都是在工程的根目录运行
拉取依赖 restore 用于开发:godep restore 
如果下载的项目中只有Godeps.json文件,而没有包含第三库则可以使用godep restore这个命令将所有的依赖库下载到$GOPATH\src中用于开发,godep restore执行时,godep会按照Godeps/Godeps.json内列表,依次执行go get -d -v来下载对应依赖包到GOPATH路径下;
godep restore将Godeps/Godeps.json文件中指定的包安装到$GOPATH目录。
godep restore,可以将vendor下的代码反向拷贝到$GOPATH下。
检出依赖 :godep save
扫描本项目的代码,将项目依赖的包及该包的版本号(即git commit)记录到Godeps/Godeps.json文件中;将依赖的代码从GOPATH/src中copy到vendor目录(忽略原始代码的.git目录)。
- 自动扫描当前目录所属包中import的所有外部依赖库(非系统库) 
- 将所有的依赖库下载下来到当前工程中,产生文件 - Godeps\Godeps.json
- 在没有 - Godeps\文件的情况下,生成依赖目录- vendor\文件夹
godep save会将工程依赖项复制到工程目录的vendor/子目录下。在这个过程中,以下文件不会复制
- 没有纳入版本管理的文件
- *test.go
- testdata目录
- go包外的其他文件
godep 编译运行 build
项目用godep管理后,要编译和运行项目的时候再用go run和go build显然就不行
因为go命令是直接到GOPATH目录下去找第三方库,且在1.6以后支持
vendor方式编译,而使用godep下载的依赖库放到Godeps/workspace目录下的,但是不影响继续使用依赖GOPATH目录,所以与三方工具本身不冲突
故使用
godep go build XXX
godep中的go命令,就是将原先的go命令加了一层壳,执行godep go的时候,会将当前项目的workspace目录加入GOPATH变量中
增加新的依赖包:
- Run go get foo/bar
- Edit your code to import foo/bar.
- Run godep save (or godep save ./…).
如果要更新依赖包:
- Run go get -u foo/bar
- Run godep update foo/bar. (You can use the … wildcard, for example godep update foo/…).
Godeps目录的作用
godep save时godep把所有依赖包代码从GOPATH路径拷贝到Godeps目录下,并去除代码管理目录。这个用处主要是为了支撑godep go tool的一系列操作,尤其是git clone了代码库下来后,通常直接用godep go install xxx即可完成编译,一定程度上能够缓解golang比较严格的代码路径和包管理带来的烦恼。
而在使用IDE时,可以通过把vendor添加到GOPATH实现代码跳转和编译等功能,比较方便
vendor
依赖GOPATH来解决go import有个很严重的问题:如果项目依赖的包做了修改,或者干脆删掉了,会影响我的项目。
那么vendor属性的作用就是让go编译时,优先从项目源码树根目录下的vendor目录查找代码(可以理解为切了一次GOPATH),如果vendor中有,则不再去GOPATH中去查找。注意,必须将依赖包拷贝到$GOPATH/src目录中,否则go会无视vendor目录,仍然去$GOPATH/src中去找依赖包。
godep使用的更多相关文章
- godep 包管理工具
		godep是解决包依赖的管理工具 安装 go get github.com/tools/godep 成功安装后,在GOPATH的bin目录下会有一个godep可执行的二进制文件,后面执行的命令都是用这 ... 
- 【GoLang】golang 报管理工具 Godep 介绍
		使用方法: 提交:cd ${GOPATH}/src/github.com/junneyang/xcloudgodep save -v ./...rm -rf vendor/git checkout - ... 
- Go 命令之 godep
		本文参考:http://www.cnblogs.com/me115/p/5528463.html#h20 http://studygolang.com/articles/4385 关于Godep 发现 ... 
- Godep的基本使用
		[http://studygolang.com/articles/4385] 关于Godep 发现好多golang项目都使用到godep作为包管理的工具,像比较大型的项目,比如kubernetes这种 ... 
- go语言 godep save 报错  is not using a known version control system
		使用 godep save 后提示需要包 如果使用 gopm 下载需要的包,就会没有版本控制文件夹,再次使用godep save后会报错 https://github.com/gpmgo/gopm/i ... 
- go语言学习--go中godep的使用小结
		go中的godep 本文参考:http://www.cnblogs.com/me115/p/5528463.html#h20 http://studygolang.com/articles/4385 ... 
- godep 包管理
		go get -u -v github.com/tools/godep godep save 
- godep的save和update
		godep save ./... 把依赖的包从GOPATH里找到,然后固化到当前目录Godeps目录里. 但是它不分版本:如果GOPATH里某个包升级了,godep save不会把它更新到Godeps ... 
- Golang Gin 项目包依赖管理 godep 使用
		Golang Gin 项目包依赖管理 godep 使用 标签(空格分隔): Go 在按照github.com/tools/godep文档go get完包以后,调整项目结构为$GOPATH/src/$P ... 
随机推荐
- 关于 Google 与 Chrome
			不断更新... 查看chrome版本 chrome浏览器中输入 chrome://version/ Chrome吧 :http://tieba.baidu.com/f?kw=chrome&i ... 
- R语言编程艺术(4)R对数据、文件、字符串以及图形的处理
			本文对应<R语言编程艺术> 第8章:数学运算与模拟: 第10章:输入与输出: 第11章:字符串操作: 第12章:绘图 =================================== ... 
- 用C语言的rand()和srand()产生伪随机数的方法总结
			标准库<cstdlib>(被包含于<iostream>中)提供两个帮助生成伪随机数的函数: 函数一:int rand(void):从srand (seed)中指定的seed开始 ... 
- mysql三大特性、三范式、五大约束
			1.数据库的三大特性 '实体':表 '属性':表中的数据(字段) '关系':表与表之间的关系 2.数据库设计三大范式 a:确保每列保持原子性(即数据库表中的所有字段值是不可分解的原子值) b:确保表中 ... 
- 【BZOJ-3672】购票      树分治 + 斜率优化DP
			3672: [Noi2014]购票 Time Limit: 30 Sec Memory Limit: 512 MBSubmit: 1177 Solved: 562[Submit][Status][ ... 
- 理解JVM模型
			概括 JVM运行时数据区可以划分为5部分,分别是:程序计数器.虚拟机栈.本地方法栈.堆.方法区 程序计数器(Program Counter Register) 相当于当前线程所执行字节码的行号指示器. ... 
- SGU 101 Domino (输出欧拉路径)
			101. Domino time limit per test: 0.25 sec. memory limit per test: 4096 KB Dominoes – game played wit ... 
- Android 开源库获取途径整理
			介绍眼下收藏 Android 开源库比較多的 GitHub 项目.站点.Twitter.App 及怎样获取最新的 Android 开源库. 微信号: 1. GitHub Android 开源项目汇总 ... 
- STM32 Seminar 2007 -- Timer
- STM32定时器级联 -- AN2592
			Master configuration When a timer is selected as a master timer, the corresponding trigger output si ... 
