Go Modulesでローカルパッケージを修正する場合
Golangの学習しております。
GoModulesを利用したバージョン管理について学んでいるのですが、以下のような構成の場合
一度github上に反映した後、ローカルのhello-world.goを修正してもリモート上のパッケージを参照してしまい、動作の確認ができません。
対応として以下の方法があるようなのですが、どの方法を取るのが良いのでしょうか。
- vendorディレクトリを使う
- GOPROXY経由で参照する
- replaceディレクティブを使う
├── main.go
└── pkg
└── hello-world
└── hello-world.go
package main
import (
"github.com/repo/project/pkg/hello-world"
)
func main() {
helloworld.HelloWorld()
}
また replaceディレクティブを使う を試しているのですが
以下の通りgo.modを修正してビルドすると以下のエラーが発生するのですが
解消方法をご教示いただけないでしょうか。
module github.com/repo/project
go 1.13
require github.com/repo/project v0.0.0
replace github.com/repo/project => ./
▸ go build
go: finding github.com/repo/project latest
build github.com/repo/project: cannot load github.com/repo/project/pkg/hello-world: module github.com/repo/project@latest (v0.0.0) found, but does not contain package github.com/repo/project/pkg/hello-world
よろしくお願いいたします