当我克隆用golang编写的项目时,很多进口都很正常 ' github.com/XXXX'缺失。有没有办法通过命令批量获取这些导入?或者我想一个接一个地拿到它们。
答案 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-人们现在的移动方式)文件。
如果使用了dep并且已经安装了它,那么dep ensure
将为您设置依赖项并确保您获得了作者想要的版本
如果项目未使用依赖项管理,则可以使用go get ./...
来获得软件包,但我认为不能保证您获得正确的版本(例如,如果作者被固定在Dep的版本标签上) )
如果运行dep init
,它将在项目上设置dep并将尝试解析正确的版本,但是,如果星号不对齐,这种方法并不总是有效(例如,我已经使用gopkg.in看到了依赖项问题)