我已经在github中有一个现有项目,并且将deps json文件存储在Godeps文件夹和供应商文件夹中的依赖包中。
现在我需要一种方法将新包添加到列表中,而不会对现有的json文件和供应商包文件夹产生任何影响
答案 0 :(得分:2)
不要对抗工具。让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
新软件包 - 它不会更新您现有的软件包。
-u标志指示get使用网络更新命名包及其依赖项。默认情况下,get使用网络检出丢失的包,但不使用它来查找现有包的更新。 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
它可以更轻松地切换多个回购。
提示:使您的配置默认值对您的团队的“本地开发环境”更为合理。例如。 DB用户名/密码如“dev / dev”等。这样,您就不必使用godep go run main.go
传递参数。好又简单。