新手问题 大家推荐哪种 golang 包管理方式?

xiemengjun · 2016年10月10日 · 最后由 asdfsx 回复于 2018年03月05日 · 776 次阅读
本帖已被设为精华帖!

vendor 特性肯定要用,否则远端的 git 库升级可能会导致接口不兼容。

谢谢。

更多原创文章干货分享,请关注公众号
  • 加微信实战群请加微信(注明:实战群):gocnio

我们目前项目中使用的是 godep,但是我最近尝试迁移到 glide 里面来,两个的功能都差不多,但是 glide 更强大一点,而且是 Go1.5 vendor 目录支持之后出来的,所以我还是比较推荐用这个。

这里列出来一些目前支持 vendor 的工具

gopkg,侵入最小。不过这个是给作者准备的,使用者没得选。

glide 真的很不错

glide 很女子很弓虽大

既然这么多人用 glide,那问个 glide 的一个问题: glide init 的时候,我发现会将绝对路径的 package 路径写入 glide.yaml (譬如 Keepin/common 这个路径),这样子 glide install 就会报错。 有什么参数可以忽略吗?

在用 gb

@kinta, 请看我在本地测试的,你是不是姿势不对,建议先升级到最新版本的 glide 再试试

glide init
[INFO]  Generating a YAML configuration file and guessing the dependencies
[INFO]  Attempting to import from other package managers (use --skip-import to skip)
[INFO]  Scanning code to look for dependencies
[INFO]  --> Found reference to github.com/astaxie/beego
[INFO]  --> Adding sub-package context to github.com/astaxie/beego
[INFO]  --> Found test reference to github.com/smartystreets/goconvey/convey
[INFO]  Writing configuration file (glide.yaml)
[INFO]  Would you like Glide to help you find ways to improve your glide.yaml configuration?
[INFO]  If you want to revisit this step you can use the config-wizard command at any time.
[INFO]  Yes (Y) or No (N)?
Y
[INFO]  Looking for dependencies to make suggestions on
[INFO]  --> Scanning for dependencies not using version ranges
[INFO]  --> Scanning for dependencies using commit ids
[INFO]  Gathering information on each dependency
[INFO]  --> This may take a moment. Especially on a codebase with many dependencies
[INFO]  --> Gathering release information for dependencies
[INFO]  --> Looking for dependency imports where versions are commit ids
[INFO]  Here are some suggestions...
[INFO]  The package github.com/astaxie/beego appears to have Semantic Version releases (http://semver.org).
[INFO]  The latest release is v1.7.1. You are currently not using a release. Would you like
[INFO]  to use this release? Yes (Y) or No (N)
N
[INFO]  Would you like to remember the previous decision and apply it to future
[INFO]  dependencies? Yes (Y) or No (N)
Y
[INFO]  No proposed changes found. Have a nice day.
cat glide.yaml
package: btest
import:
- package: github.com/astaxie/beego
  subpackages:
  - context
testImport:
- package: github.com/smartystreets/goconvey
  subpackages:
  - convey

在用 glide ,也解决了 fork 的问题。

govendor

go get支持git submodule

所以不需要其他的第三方包管理器
直接在vendor目录里面添加依赖的库为submodule就行了

期待官方的 dep

godep 不拷贝 test 文件。

glide 一枚

社区 好啊!!

必须 glide

目前都还没用过。。。

govendor

dep 最近在使用,感觉不错,毕竟亲生的

官方貌似又在搞新轮子~~~vgo

29楼 已删除
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册