一个module中可以包含多个package,使用go.mod来进行管理
一个workspace中可以包含多个module,使用go.work来进行管理
使用go mod 与go work来新建一个本地的多module项目
示例如下图,新建一个含有三个module,一个是含有main package的module,另外两个是各自含有package1,package2两个package的module。
在每个模块下新建各自的go.mod(在各个模块目录执行go mod init mainModule, go mod init module1, go mod init module2),然后在项目目录新建go.work(go work init ./mainModule ./module1 ./module2)
main.go 与package.go的代码如下:
package main
import (
"fmt"
p11 "module1/package1"
p12 "module1/package2"
p21 "module2/package1"
p22 "module2/package2"
)
func main() {
fmt.Println("main")
p11.Package()
p12.Package()
p21.Package()
p22.Package()
}
package package1
import (
"fmt"
)
func Package() {
fmt.Println("module1 package1")
}
在main.go同级目录下执行go run main.go结果如下: