目录
- 1 修订记录
- 2 安装godep
- 2.1 按装godep
- 2.2 验证安装
- 3 使用godep管理依赖项
- 3.1 初始化工程
- 3.2 引入依赖项
- 3.3 开发
- 3.4 测试
- 4 使用godep管理已有工程
- 4.1 将工程加入版本管理
- 4.2 使用godep管理依赖项
- 5 工作原理
- 6 常用命令
- 6.1 godep restore
- 7 更新依赖项
- 8 Godeps.json文件
- 8.1 Godeps.json文件结构
- 8.2 Godeps.json文件示例
- 9 注意事项
- 10 问题记录
- 10.1 执行godep save提示警告:godep should only be used inside a valid go package directory…
- 11 参考资料
1 修订记录
- 2016年12月20日 修改安装方法说明;增加依赖项管理内容;修改格式;删除无用内容。
2 安装godep
2.1 按装godep
执行
go get github.com/tools/godep
2.2 验证安装
godep version
3 使用godep管理依赖项
3.1 初始化工程
mkdir Project cd Project git init .
3.2 引入依赖项
go get foo/bar
编写代码使用依赖项。
godep save
3.3 开发
3.4 测试
godep go test
4 使用godep管理已有工程
4.1 将工程加入版本管理
git init . git add . git commit -a -m "Initial commit."
4.2 使用godep管理依赖项
godep save
5 工作原理
godep会将工程依赖项复制到工程目录的vendor/子目录下。在这个过程中,以下文件不会复制
- 没有纳入版本管理的文件
- *test.go
- testdata目录
- go包外的其他文件
6 常用命令
6.1 godep restore
godep restore将Godeps/Godeps.json文件中指定的包安装到$GOPATH目录。
7 更新依赖项
go get -u foo/bar godep update foo/bar
8 Godeps.json文件
Godeps.json文件描述了工程依赖项。Godeps.json文件位于工程目录的字母Godeps下。
8.1 Godeps.json文件结构
type Godeps struct { ImportPath string GoVersion string // Abridged output of 'go version'. GodepVersion string // Abridged output of 'godep version' Packages []string // Arguments to godep save, if any. Deps []struct { ImportPath string Comment string // Description of commit, if present. Rev string // VCS-specific commit ID. } }
8.2 Godeps.json文件示例
{ "ImportPath": "github.com/kr/hk", "GoVersion": "go1.6", "Deps": [ { "ImportPath": "code.google.com/p/go-netrc/netrc", "Rev": "28676070ab99" }, { "ImportPath": "github.com/kr/binarydist", "Rev": "3380ade90f8b0dfa3e363fd7d7e941fa857d0d13" } ] }
9 注意事项
- 工程目录应当是$GOPATH的子目录。
10 问题记录
10.1 执行godep save提示警告:godep should only be used inside a valid go package directory…
godep: [WARNING]: godep should only be used inside a valid go package directory and godep: [WARNING]: may not function correctly. You are probably outside of your $GOPATH. godep: [WARNING]: Current Directory: D:\Workspace\Develop\AHStock godep: [WARNING]: $GOPATH: D:\Workspace\GoWorkspace
原因是工程目录不是$GOPATH的子目录。