repl.info

Go製ソフトウェアの開発中にインポートしているパッケージを修正して手元で動作確認する方法

Goで書かれたソフトウェアを触っていると、そのソフトウェアがインポートしているパッケージを修正して手元で動作確認したいことがある。Go Modulesのreplaceを使うと手軽に実現できるので、その方法について記録しておく。

例としてhashicorp/vaultを挙げる。vaultは機能ごとにプラグインとして外部パッケージに切り出していて、例えばシークレットのKVはhashicorp/vault-plugin-secrets-kv だったりする。この時、vault-plugin-secrets-kv側を変更して、その変更をVaultとして動作確認したいというわけである。

ではどうするかというと、Go Modulesにあるreplaceを使う。

replace github.com/hashicorp/vault-plugin-secrets-kv => ../vault-plugin-secrets-kv

このようにgithub.com/hashicorp/vault-plugin-secrets-kvを相対パスで指定することで、修正内容が含まれるパッケージでビルドすることができる。