我正在使用GoLang中的第三方库,它以前在不同的情况下有导入路径。起初,字母是小写字母,然后提交人将其改为大写字母。
一些插件作者更新了他们的库,而另一些没有更新。同时,原版的库作者恢复了案例的改变。
现在,我发现我的应用程序由于导入冲突而无法构建。
怎么才能解决这个问题呢?
非常感谢
发布于 2017-04-25 11:18:48
您可以供应商依赖关系,然后进入vendor/
目录,手动更改(尝试grep
ing或sedgrep
依赖项),即依赖项。
想要了解有关销售的介绍,请在这里试一下,https://blog.gopheracademy.com/advent-2015/vendor-folder/
原始的回购仍然可以存在于您的GOPATH
中,但是“更正”版本可以放在供应商文件夹中,编译器在链接依赖项时将首先在该文件夹中查找。
有许多工具可供使用,我使用政府机关
编辑
正如mkopriva在注释中提到的,您可以使用工具重构导入名称:
gofmt -w -r '"path/to/PackageName" -> "path/to/packagename"' ./
gofmt -w -r 'PackageName.x -> packagename.x' ./
小写单字符标识符是通配符。
从医生那里
使用-r标志指定的重写规则必须是窗体的字符串:
pattern -> replacement
模式和替换都必须是有效的Go表达式。在模式中,单字符小写标识符充当与任意子表达式匹配的通配符;这些表达式将在替换中替换相同的标识符。
发布于 2021-07-12 13:48:13
如果有人想知道为什么您的项目中会出现此错误:确保所有导入都使用小写或大写路径,而不是混合路径。就像这样:
one.go -> "github.com/name/app/login"
another.go -> "github.com/name/app/login"
不是这样的:
one.go -> "github.com/name/app/Login"
another.go -> "github.com/name/app/login"
https://stackoverflow.com/questions/43618860
复制