やりたかったこと
main.goにながーく書いてある状態から、このようなディレクトリ構成にしたいと考えた。
repository
├── cmd
│ ├── main.go
│ └── main_test.go
├── internal
│ └── hoge.go
└── go.mod
go.mod
module github.com/hoge/repository
go 1.22.3
main.go
package main
import (
"fmt"
"github.com/hoge/repository/internal"
)
// 以下略
このような構成に変えたあとgo mod tidyしたらエラーが出た。
原因
デフォでmainブランチ(作業しているのとは別)から取得しているので、packageが見つからないらしい。
解決策
そもそも、流用ができなさそうなファイルだったので、ローカルで参照すればいいと考えた。
まず、go mod init repositoryで変える。
go.mod
module repository
go 1.22.3
次に、importを変える。
main.go
package main
import (
"fmt"
"repository/internal"
)
// 以下略
これでできるようになった。
おわりに
この結論にたどりつくまでに中々時間を使ったので、自力でたどり着けてちょっと嬉しかったです。