如何使用Golang获取程序的所有依赖文件


89

我用golang编写了一个程序,完成代码后,如果要在其他PC或VM上运行此代码,则它不会获取所有依赖包文件。我如何获得所有依赖文件?

go 

Answers:


10

您可以godep save在本地PC上完成程序。godep save会为您收集所有依赖项文件。当您移至另一台PC时,只需将Godep文件夹及其代码复制即可,它将解决您的问题。


7
也许对某些人来说很明显,但是我不得不去挖掘它。原来,您需要将godep或dep软件包安装到Go中。Github stie
Patratacus,

211

您可以go get -d ./...从项目的目录运行以下载所有go-gettable依赖项。
或将所有src子目录从GOPATH复制到目标计算机。
...是一种特殊的模式,告诉递归下降。


1
如果我需要运行/修改代码,则找不到包。

1
我知道我可以通过get <package>来获取软件包,但是当程序使用许多软件包时,这既费时又困难。

3
-t还将安装测试依赖项
honzajde

3
@AlbertoSchiabel...是一种特殊的模式。它告诉递归下降。我已经更新了答案
RoninDev'17

谢谢@RoninDev!刚开始,我要编辑对的回答./.,因为在您尝试在PC上执行命令后,它有点卡住了(现在我知道为什么了,因为对go文件进行递归搜索可能会非常昂贵),但是后来我意识到更好先问。谢谢!
艾伯托·斯基亚贝尔

51

尝试

go list -f '{{ join .Imports "\n" }}'

要么

go list -f '{{ join .Deps "\n" }}'

第二个将列出所有从属关系,第一个仅列出直接导入的程序包。


22

下面的命令对我有用,它将下载所有依赖项。

go get -u -v -f all

它需要很长时间!它会下载我从未在项目中使用过的软件包!
Yuseferi
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.