Go语言 如何获取程序的所有依赖文件

vu8f3i0k  于 2023-04-03  发布在  Go
关注(0)|答案(7)|浏览(180)

我用Go语言编写了一个程序,在完成代码后,如果我想在其他PC或VM上运行这个代码,那么它不会获得所有的依赖包文件。我如何才能获得所有的依赖文件?

mutmk8jj

mutmk8jj1#

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

vyswwuz2

vyswwuz22#

试试看

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

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

第二个将列出所有子依赖项,第一个仅列出直接导入的包。

ohtdti5x

ohtdti5x3#

下面的命令为我工作,它下载所有的依赖项。

go get -u -v -f all
dgtucam1

dgtucam14#

它是go mod download。更多信息请查看go help mod

mxg2im7a

mxg2im7a5#

您可以在完成程序的本地PC上使用godep save。godep保存为您收集所有依赖文件。当您移动到其他PC时,只需将代码复制到Godep文件夹,它将解决您的问题。

ctzwtxfj

ctzwtxfj6#

如果您使用的是模块模式,您可以尝试go mod tidy,如下所述。

eaf3rand

eaf3rand7#

最好的方法是获取列表并迭代安装软件包,这工作得很好:

while read l; do go get -v "$l"; done < <(go list -f '{{ join .Imports "\n" }}')

相关问题