2

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

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

4

1 回答 1

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

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

提示:使您的配置默认值适合您的团队的“本地开发环境”。例如数据库用户名/密码,如“dev/dev”等等。这样,您不必使用godep go run main.go. 很好很简单。

于 2016-05-11T15:30:17.583 回答