不允许使用内部包装

时间:2019-12-15 08:40:21

标签: go go-build

我正在尝试构建和运行存储库(https://github.com/hyperledger/fabric/tree/master),但此错误不断弹出,但我仍未找到解决方案。

fields

这只是出现此错误的许多文件之一。 我很确定我做错了,因为此仓库正在运行。

开始版本:

consensus.go:12:2: use of internal package github.com/hyperledger/fabric/internal/pkg/identity not allowed

OS:Linux Mint 19.2肉桂

1 个答案:

答案 0 :(得分:3)

Internal packages(位于路径中具有internal文件夹的文件夹中的软件包)只能从以internal文件夹的父文件夹为根的软件包中导入。

例如软件包pkg/foo/internal/bar既可以由软件包pkg/foo/internal/baz导入,也可以从pkg/foo/baz导入,但是不能由软件包pkg导入,也不能由pkg/bar导入。这是设计使然。如此大的复杂包装可以分解成较小的包装,而无需暴露内部。

您必须将内部软件包视为“私有”软件包,或者将其从“外部”视为不存在。

查看相关内容:Can I develop a go package in multiple source directories?

Command go: Internal Directories上了解有关内部软件包的更多信息。

内部软件包是编译器的限制。如果要在自己的项目中公开它们(如果要使用内部软件包),则必须删除internal文件夹,然后当然也必须更改导入(导入路径)。 / p>