批量获取缺失的进口

时间:2018-06-19 10:47:38

标签: go

当我克隆用golang编写的项目时,很多进口都很正常 ' github.com/XXXX'缺失。有没有办法通过命令批量获取这些导入?或者我想一个接一个地拿到它们。

3 个答案:

答案 0 :(得分:3)

您应该使用go get来获取"远程"包。引自Command go: Download and install packages and dependencies

  

下载导入路径命名的软件包及其依赖项。然后安装命名包,例如' go install'。

您可以在以下所有命令中使用-v标记,这样您就会看到go get正在做什么。

如果您只想下载软件包但不想安装它们,可以使用-d标志。

示例使用示例远程包github.com/somebody/somepackage,但显然它适用于在github.com之外托管的其他包。

有关详情,请参阅官方文档:Command go或输入go help get

要获得包含该包的所有依赖项的单个包并安装它们,请使用

go get github.com/somebody/somepackage

要获得包含其所有依赖项的包以及以该路径为根的所有其他包(及其依赖项),并安装所有这些包,请使用:

go get github.com/somebody/somepackage/...

从命令引用:

  

导入路径是一种模式,如果它包含一个或多个" ..."通配符,每个通配符可以匹配任何字符串,包括空字符串和包含斜杠的字符串。这样的模式扩展到GOPATH树中找到的所有包目录,其名称与模式匹配。

要获得包含其所有依赖项的包(以及"子包")包括测试的依赖项,并安装所有这些依赖项,请使用:

go get -t github.com/somebody/somepackage/...

要更新您已有的软件包,请使用:

go get -u github.com/somebody/somepackage/...

获取您已拥有的包的依赖关系(不一定是来自远程位置):

go get path/to/package/name/...

或转到其文件夹,然后您可以使用相对路径:

go get ./...

答案 1 :(得分:1)

尝试在项目的根目录中使用select ID, N, W, P from ( select ID, N, W, P, row_number() over (partition by N order by P desc) rn, count(ID) over (partition by N) cnt from TBL ) a where cnt >= 10 and rn = 3

答案 2 :(得分:1)

许多golang项目现在都使用依赖管理,因此您应该首先查找它。例如,项目根目录中存在一个Glide.lock(glide)或Gopkg.lock(dep-人们现在的移动方式)文件。

https://github.com/golang/dep

https://golang.github.io/dep

如果使用了dep并且已经安装了它,那么dep ensure将为您设置依赖项并确保您获得了作者想要的版本

如果项目未使用依赖项管理,则可以使用go get ./...来获得软件包,但我认为不能保证您获得正确的版本(例如,如果作者被固定在Dep的版本标签上) )

如果运行dep init,它将在项目上设置dep并将尝试解析正确的版本,但是,如果星号不对齐,这种方法并不总是有效(例如,我已经使用gopkg.in看到了依赖项问题)