如何将包添加到 godeps

How to add a package to godeps

我已经在 github 中有一个现有项目并且 deps json 文件存储在 Godeps 文件夹中,依赖包存储在 vendor 文件夹中。

现在我需要一种方法来将新包添加到列表中而不影响现有 json 文件和供应商包文件夹

不要对抗工具。让 godep 更新您的 json 文件和供应商文件夹,无论它对您的原始 Godeps/godeps.json 文件有多大干扰。

godep restore     // put everything in a known state
go get -u foo/bar // get new package
go test ./...     // make sure everything is up to snuff
go run main.go    // run your code
godep save ./...  // update `godeps.json` to current state of packages

如果您对新包使用 go get -u foo/bar,这只会影响 foo/bar 的新包 - 它不会更新您现有的包。

The -u flag instructs get to use the network to update the named packages and their dependencies. By default, get uses the network to check out missing packages but does not use it to look for updates to existing packages. https://golang.org/cmd/go/

作为旁注,我建议养成使用 godep 前缀的习惯,以免打扰您的 $GOPATH:

go get -u foo/bar     // get new package
godep go test ./...   // test your package, using your /vendor deps
godep go run main.go  // run your code, using your /vendor deps
godep save ./...      // update godeps if everything checks out

这使得切换多个存储库变得更加容易。

提示:使您的配置默认值对您的团队 "local development environment" 合理。例如。 DB username/password 喜欢 "dev/dev" 等等。这样,您就不必使用 godep go run main.go 传递参数。漂亮又简单。