コンテキスト: モノリシック リポジトリ アーキテクチャを使用しています。これは、多くのプロジェクトを含む 1 つの大きな github リポジトリがあり、各プロジェクトが ui、node、go などに独自の技術スタックを使用していることを意味します。
> /home/workspace/
> ./nodejs_project1
> ./reactui_project2
> ./reactnative_ui_project3
> ./go_identity_service_project4
> ./go_graphql_api_project5
> ./go_common (<--- how to share this with other go modules?)
>
> /home/go (GOPATH) - only for 3rd party vendor downloads fro go-get
> ./src
> ./bin
> ./pkg
go_common には、ロギング、データベース接続、構造体としてのスキーマ/モデルなど、すべての go プロジェクトで使用される共通コードがあります。Go 1.11 を使用し、go.mod でモジュールを宣言しています。また、このワークスペース全体と、GOPATH の外部にあるプロジェクトもあります。node.js プロジェクトで node_modules を .gitignore する方法と同様に、リポジトリ内にベンダー/サード パーティがダウンロードしたモジュールは必要ありません。そのため、go-get はベンダー モジュールを期待どおり GOPATH src/pkg にダウンロードし、任意の go プロジェクトにインポートするためにアクセスできます。
ただし、go_common のモジュールを参照する imports を動作させることはできません。go_common で go build と go install を実行して、GOPATH/bin にバイナリを作成しようとしましたが、実際に参照できるようにはなりませんでした。これを行う標準的な方法はありますか? 特に Go 1.11 と vgo の統合が GOPATH に依存せず、モジュール管理を容易にすることになっている今... ??