Go 1.11のリリース後、ルートにgo.mod
ファイルを追加して、リポジトリをGoモジュールに移動しようとしています。
ルートライブラリのmy.Host/root
はバージョン17.0.1であるため、go.mod
ファイルに記述しました。
module my.Host/root/v17
Goモジュールのマニュアルに記載されているように、そのバージョンv17.0.1
にタグを付けました。
ルートライブラリを使用する新しいGoプロジェクトを作成しようとすると、次のようになります。
package main
import root "my.Host/root/v17"
func main() {
root.DoSomething()
}
コンパイルしようとすると、次のエラーが表示されます。
go:my.Host/[email protected]:go.modには、リビジョン6bc78016491aでpost-v0モジュールパス「my.Host/root/v17」があります
これがなぜ起こるのか、私は途方に暮れています。 v17.0.1
ファイルにgo.mod
を明示的に追加しましたが、go build
を試みるたびにエントリがv0.0.0-20180828034419-6bc78016491a
バージョンに置き換えられ、そのコミットでgo.mod
file module
ルートライブラリのエントリは、実際にはv17
で終わっています。
レコードの場合、このコミットはタグ付きv17.0.1
バージョンと同じです。
ここで何が間違っていますか?この状況をデバッグするにはどうすればよいですか?
私が得たエラー:github.com/emicklei/[email protected]: go.mod has post-v0 module path "github.com/emicklei/go-restful/v2" at revision 3658237ded10
github.com/emicklei/go-restful
にv2
を追加すると、github.com/emicklei/go-restful/v2
ファイルのgo.mod
が修正されました。