datsukan blog
🐭

Goでモジュールの最新のコミットを反映する方法

この記事は投稿してから1年以上が経過しています。

結論

環境変数のGOPROXYdirectを指定して取得する。

GOPROXY=direct go get hoge/fugo
GOPROXY=direct go get ./...

これはなに?

GithubなどのリポジトリでGoのモジュールを管理することが多いと思います。
個人開発、組織内開発では明示的なリリース管理はせずに、モジュールを使用するソースコード側では最新のコミットを参照することも多いと思いますが、その際に常に最新のモジュールを反映する方法です。

背景

go.modに記述されているモジュールのバージョンをアップデートする際、どのように操作しますか?
おそらくぱっと考えるのはgo get hoge/fugogo get ./...などだと思います。
ただデフォルトの設定だとModule Mirrorと呼ばれるキャッシュプロキシーから取得することになり、pushされたばかりのcommitは反映されていないことが多いです。
なので環境変数でキャッシュプロキシーを使わない指定を明示的に行うことで、最新のcommitを取得できるようにしています。

注意

プロキシーを使わない分取得にかかる時間は長くなるので、使い所は考えたほうがいいと思います。

コメント
 
URLをコピーしました
Profile picture
datsukan

24歳。埼玉県在住。東京都のSaaS企業でバックエンドエンジニアとして勤務しています。

© 2022 datsukan