我经常看到.go文件已经提交到pkg文件夹,比如这里https://github.com/kubernetes/apiserver有什么特别的原因,使用供应商文件夹进行第三方依赖,或者将自己的代码提交到src目录?
答案 0 :(得分:1)
无需将您的项目文件放在pkg
文件夹下。并且首先,您的项目中不需要pkg
文件夹。
pkg
不 a"保留"文件夹名称,至少不在项目的上下文中。
vendor
对Go编译器具有特殊意义,并且意图保存作为单独项目的一部分编写的代码,例如,第三方套餐。因此,对于链接项目,将pkg
下的代码移动到vendor
是没有意义的。
如果您想了解为什么kubernetes或其他项目决定使用pkg
,您最好通过查询这些项目来获得服务。沟通渠道(邮件列表,irc,社交媒体等)。
答案 1 :(得分:0)
请进一步澄清。
您链接的该repo上的pkg
文件夹是他们放置所写包的位置。原因?他们需要把它们放在某个地方,他们选择了pkg
。
如果您不希望将来使用的第三方软件包更改可能会使您的程序不稳定,则使用vendor
文件夹,在这种情况下,您“供应”这些第三方软件包。因此,出于显而易见的原因,您不要将自己的包放在vendor
文件夹中。
哪个src
? $GOPATH/src
?你能行的!可能,我没有测试过。但是在这种情况下你只能有一个项目,那就是你放在那里的项目。