开发golang库时,我们是否应该始终将自己的包放在供应商/文件夹中?
最近我读了一篇文章,有一些建议,其中之一是: 库(没有开发golang库时,我们是否应该始终将自己的包放在供应商/文件夹中?,go,vendor,glide-golang,Go,Vendor,Glide Golang,最近我读了一篇文章,有一些建议,其中之一是: 库(没有主包的代码库)不应将外部包存储在其VCS中的供应商/文件夹中,除非它们有特定的原因并理解这样做的原因 我的问题是: 根据该建议,在开发golang library时,我们是否应始终将自己的软件包(而不是那些第三方软件包)放入供应商/文件夹?“外部软件包”是指本回购协议之外的软件包。因此,如果包与导入它们的代码处于不同的回购协议中:是的,提供它们 如果在实现库时只想编写和使用多个包:否,请将它们放在供应商/库repo外部的子文件夹中 比如说 。
主
包的代码库)不应将外部包存储在其VCS中的供应商/
文件夹中,除非它们有特定的原因并理解这样做的原因
我的问题是:
根据该建议,在开发golang library时,我们是否应始终将自己的软件包(而不是那些第三方软件包)放入供应商/
文件夹?“外部软件包”是指本回购协议之外的软件包。因此,如果包与导入它们的代码处于不同的回购协议中:是的,提供它们
如果在实现库时只想编写和使用多个包:否,请将它们放在供应商/库repo外部的子文件夹中
比如说
。。。
▸ 服务器/
server.go“包服务器”
▸ 贮藏/
▸ testutils/
▾ 卖主/
▸ bitbucket.org/
▸ github.com/
...
“外部包”是指本回购协议之外的包。因此,如果包与导入它们的代码处于不同的回购协议中:是的,提供它们
如果在实现库时只想编写和使用多个包:否,请将它们放在供应商/库repo外部的子文件夹中
比如说
。。。
▸ 服务器/
server.go“包服务器”
▸ 贮藏/
▸ testutils/
▾ 卖主/
▸ bitbucket.org/
▸ github.com/
...
不,在供应商/目录中添加您自己的包是没有意义的,因为供应商目录用于项目外部的代码
这个建议的意思是:如果您正在开发一个库,不要使用vendor/来存储第三方库,除非您知道自己在做什么以及为什么要这样做。不,在vendor/目录中添加您自己的包是没有意义的,因为vendor目录是用于项目外部的代码的
这个建议的意思是:如果你正在开发一个库,不要使用供应商/来存储第三方库,除非你知道你在做什么以及为什么要这样做。虽然你的回答不是我问题的直接答案,但是你澄清了什么是“包装箱外”,这让我感到困惑。谢谢使我理解了为什么库不应该将第三方软件包放入
供应商/
目录。在开发库时,当我们将第三方软件包放入库的代码库目录结构中时,供应商软件包管理器(如glide
如何管理它们?@BruceAuyeung我只使用了godep
,使用它:运行获取foo/package1 bar/package2…
将软件包安装到gopath中,然后运行godep restore和&godep save./…
将软件包从gopath复制到/vendor/
。我希望使用glide,您同样不必手动将任何内容放入供应商文件夹。但建议说不要将第三方LIB放入供应商文件夹,对吗?我只对具有main.go的程序有经验,所以我不知道为什么会提出此建议。如果您的代码需要依赖项,而您没有提供该依赖项,我希望用户必须手动获取依赖项/…
,尽管您的回答不是我问题的直接答案,但您澄清了让我感到困惑的外包装箱
的含义。谢谢使我理解了为什么库不应该将第三方软件包放入供应商/
目录。在开发库时,当我们将第三方软件包放入库的代码库目录结构中时,供应商软件包管理器(如glide
如何管理它们?@BruceAuyeung我只使用了godep
,使用它:运行获取foo/package1 bar/package2…
将软件包安装到gopath中,然后运行godep restore和&godep save./…
将软件包从gopath复制到/vendor/
。我希望使用glide,您同样不必手动将任何内容放入供应商文件夹。但建议说不要将第三方LIB放入供应商文件夹,对吗?我只对具有main.go的程序有经验,所以我不知道为什么会提出此建议。如果您的代码需要依赖项,而您没有提供该依赖项,我希望用户必须手动go-get-dependency/…