情况:
假设我有一个名为mypackage
. 它公开了一个名为 的方法Build()
,该方法返回一个由名为 的第三方库公开的具体结构thirdpartypackage
,例如如下所示:
package mypackage
import tpp "github.com/thirdpartycompany/thirdpartypackage"
func Build() *tpp.SharedStruct{
//...implementation
}
公开的包SharedStruct
是在内部出售的mypackage
,因为我想分发它并使该包独立。
问题:
导入mypackage
另一个项目并thirdpartypackage
在我的(集成)测试中使用后,我收到以下错误:
不能使用 XXXX(类型“github.com/mycompany/mymainproject/vendor/github.com/mycompany/mypackage/vendor/github.com/thirdcompany/thirdpartypackage-go”.Token)作为类型“github.com/empatica/mycompany/供应商/github.com/thirdcompany/thirdpartypackage”
基本上,编译器会区分我的库中的供应商第三方包和我放在主项目中的供应商包。
问题:
有没有办法解决这个问题,而不是像这里建议的那样从我的库中删除供应商的依赖项?我错过了什么吗?