php エディターの Youzi が、Golang モジュールの擬似バージョンを git 送信メソッドに変換する方法を共有します。 Golang のモジュール管理では、まだリリースされていないモジュールの依存関係を維持するために疑似バージョンが使用されます。ただし、モジュールを git リポジトリに公開する準備ができたら、これらの疑似バージョンを具体的な git コミットに変換する必要があります。この記事では、このプロセスを実装する方法を詳しく紹介し、Golang モジュールの依存関係をより適切に管理および維持するのに役立ちます。
go モジュールを含む 2 つの git リポジトリがあります。それらを controller
と api
と呼びます。 controller
は api
をインポートするため、controller
リポジトリ内の go.mod
ファイルは、含まれる api
リポジトリに依存します。モジュール。
私の問題は、controller
でコードを実行するには、api
の go コードだけでなく、リポジトリに含まれるいくつかの静的ファイル (コードから生成される) も必要であることです。 )。私の知る限り、これらの静的ファイルを go モジュールにパッケージ化して、vendor
フォルダーに自動的にインポートされるようにする方法はありません。
私の現在のアプローチは、静的ファイルを含むフォルダーを、まばらにチェックアウトされた git サブモジュールとして追加してみることです。ただし、このサブモジュールと api
からインポートされた go ソース コードとの同期を保つために、go.mod
ファイルに が含まれているかどうかを自動的にチェックする小さなシェル スクリプトが必要です。 api
モジュールのバージョンによって参照されるコミット。
これはリリースされたビルドでは機能するかもしれませんが、<セマンティック バージョン>-<
go.mod ファイル Poke> のコミット時間を持つ未リリースのバージョンでも機能することを望みます。 ; - <コミットハッシュプレフィックス>
の疑似バージョン。
この偽バージョンの 完全な コミット ハッシュを計算する方法はありますか? go modvendor
は正しいバージョンをチェックアウトできるので、これはある程度可能だと思いますが、私が考えることができる唯一のプロセスは、特定の時点ですべてのブランチにわたって発生したコミットを検索することです。次に、それらのコミットハッシュプレフィックスマッチングを選択します...これをbashで行うのは難しいように思えます。
この問題を解決する方法はありますか?静的ファイルを api
から controller
にインポートする代替案も高く評価されます。この方法により、提供されたバージョンの api
モジュールとの同期が維持されます。
正しい答えを提供してくれたVolkerに感謝します。 embed
パッケージの使用は実際には非常に簡単で、うまく機能します。
このソリューションの欠点の 1 つは、ファイルを go パッケージにのみ埋め込めることです。生成したファイルは go コードが含まれていない最上位フォルダーにあるため、それらを埋め込むには仮想パッケージでラップする必要があります。
以上がGolang モジュールの擬似バージョンを git コミットに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。