状況:
というパッケージがあるとしましょうmypackage
。という 1 つのメソッドを公開します。このメソッドは、次のように、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/" として使用することはできませんvendor/github.com/thirdcompany/thirdpartypackage"
基本的に、コンパイラは、ライブラリ内のベンダーのサードパーティ パッケージと、メイン プロジェクトに配置したベンダーのパッケージを区別しています。
質問:
ここで提案されているように、ベンダーの依存関係をライブラリから削除しないで、この問題を解決する方法はありますか? 何か不足していますか?