如何在我的Go源中找到相对导入?
我试图在我的项目中使用,当我试图添加依赖项时:如何在我的Go源中找到相对导入?,go,Go,我试图在我的项目中使用,当我试图添加依赖项时: dep确保-添加github.com/foo/bar 我会遇到很多类似的错误: sure Solve():没有版本的github.com/foo/bar满足约束: v1.2.3:无法引入github.com/foo/bar@v1.2.3,作为其子包github.com/foo/bar 不包含可用的Go代码(*build.NoGoError)。。(程序包是(root)所必需的。) 此类问题通常是由相关项目中的相对重要性引起的 如何在具有供应商依赖
dep确保-添加github.com/foo/bar
我会遇到很多类似的错误:
sure Solve():没有版本的github.com/foo/bar满足约束:
v1.2.3:无法引入github.com/foo/bar@v1.2.3,作为其子包github.com/foo/bar
不包含可用的Go代码(*build.NoGoError)。。(程序包是(root)所必需的。)
此类问题通常是由相关项目中的相对重要性引起的
如何在具有供应商依赖关系的大型项目中定位相对导入?现有的围棋工具能帮我吗
我目前的解决方案是在
grep-rn'\./'--include=\*.go.
的输出中爬行,但这很慢。您可以使用go list
命令查找所有导入的包
go list -f '{{ join .Imports "\n" }}'
在内部,相对导入被转换为绝对路径,并以\uuu
作为前缀,因此这应该显示任何包中的任何相对导入
go list -f '{{ join .Imports "\n" }}' ./... | grep '^_'
相对导入不适用于名称引用的包,因为这些包无论如何都必须在GOPATH中。它可能是您未使用的包,或者是\u test.go
文件中的某个文件,意味着要从包目录中隐式运行。您可以单独检查测试导入,但是在扩展它们时,它们是不干净的d,前缀为。
go list -f '{{ join .TestImports "\n" }}' ./... | grep '\./'