Consider the following setup:
module example.com/main require example.com/sub dummy replace example.com/sub => ./sub
If I run
go mod tidy in the main directory, it emits
go: errors parsing go.mod: […]/go.mod:3: unrecognized import path "example.com/sub": reading https://example.com/sub?go-get=1: 404 Not Found
Even if the URL existed, my understanding is that due to the
go mod has no business whatsoever with the original source because I replaced it. So why is it querying the source then? And how can I prevent that?
I already tried to set
GOPROXY=off which resulted in
[…]/go.mod:3: module lookup disabled by GOPROXY=off
Just assign a proper version number like
v0.0.0 and it will work.
Go modules use the semantic versioning model and cannot have arbitrary versions like
dummy. The supported version formats are described in Module version numbering.
Bonus note: avoid nesting Go modules. That may lead to a messy setup and problems with tooling down the road.
Answered By – rustyx
Answer Checked By – Mildred Charles (GoLangFix Admin)