go work sync | |
cmp a/go.mod a/want_go.mod | |
cmp b/go.mod b/want_go.mod | |
-- go.work -- | |
go 1.18 | |
use ( | |
./a | |
./b | |
) | |
-- a/go.mod -- | |
go 1.18 | |
module example.com/a | |
require ( | |
example.com/p v1.0.0 | |
example.com/q v1.1.0 | |
example.com/r v1.0.0 | |
) | |
replace ( | |
example.com/p => ../p | |
example.com/q => ../q | |
example.com/r => ../r | |
) | |
-- a/want_go.mod -- | |
go 1.18 | |
module example.com/a | |
require ( | |
example.com/p v1.1.0 | |
example.com/q v1.1.0 | |
) | |
replace ( | |
example.com/p => ../p | |
example.com/q => ../q | |
example.com/r => ../r | |
) | |
-- a/a.go -- | |
package a | |
import ( | |
"example.com/p" | |
"example.com/q" | |
) | |
func Foo() { | |
p.P() | |
q.Q() | |
} | |
-- b/go.mod -- | |
go 1.18 | |
module example.com/b | |
require ( | |
example.com/p v1.1.0 | |
example.com/q v1.0.0 | |
) | |
replace ( | |
example.com/p => ../p | |
example.com/q => ../q | |
) | |
-- b/want_go.mod -- | |
go 1.18 | |
module example.com/b | |
require ( | |
example.com/p v1.1.0 | |
example.com/q v1.1.0 | |
) | |
replace ( | |
example.com/p => ../p | |
example.com/q => ../q | |
) | |
-- b/b.go -- | |
package b | |
import ( | |
"example.com/p" | |
"example.com/q" | |
) | |
func Foo() { | |
p.P() | |
q.Q() | |
} | |
-- p/go.mod -- | |
go 1.18 | |
module example.com/p | |
-- p/p.go -- | |
package p | |
func P() {} | |
-- q/go.mod -- | |
go 1.18 | |
module example.com/q | |
-- q/q.go -- | |
package q | |
func Q() {} | |
-- r/go.mod -- | |
go 1.18 | |
module example.com/r | |
-- r/q.go -- | |
package r | |
func R() {} |