go work是go 1.18新出的管理多模块项目的方案,他的项目大致接口如下:
workspacedir
go.work
gomodule01_dir
go.mod
main.go
pkgmain_file01.go
pkg01_dir
pkg01.go
pkg01_file01.go
pkg02_dir
pkg02.go
pkg02_file01.go
gomodule02_dir
go.mod
pkg03_dir
pkg03_file01.go
pkg03.go
这里main包下面有多个文件,这时候执行项目要用 go run . 方式来运行。用go run main.go就不行了。
go.work的文件大致如下
go 1.18
use (
./gomodule01_dir
./gomodule02_dir
)
./gomodule01_dir 是模块所在的目录名字,而不是go.mod中声明的模块path