1

コンテキスト: モノリシック リポジトリ アーキテクチャを使用しています。これは、多くのプロジェクトを含む 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 に依存せず、モジュール管理を容易にすることになっている今... ??

4

0 に答える 0