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
を相対パスで指定することで、修正内容が含まれるパッケージでビルドすることができる。