go work工作区

go work工作区

go 1.18支持工作区,能够将单个git库下,多个模块纳入代码管理

通过go.work文件指定模块的相对路径,如果没有go.work文件,会被认为是单模块项目。
当多个模块在单模块项目中时,VSCode会报错,提示各种依赖找不到。

示例:

以下库中包含模块:
apiserver,core/user, core/log, core/db
同时可以开启全局的替换,在单个模块中不需要单独设置替换。

.
├── apiserver
│   │   ├── go.mod
│   │   └── go.sum
├── core
│   ├── user
│   │   ├── go.mod
│   │   └── go.sum
│   ├── log
│   │   ├── go.mod
│   │   └── go.sum
│   └── db
│   │   ├── go.mod
│   │   └── go.sum
├── go.work.sum
└── go.work
go 1.18

use (
    ./apiserver
    ./core/user
    ./core/log
    ./core/db
)

replace (
    example.com/test/core/user v0.2.9 => ./core/user
    example.com/test/core/log v0.2.9 => ./core/log
    example.com/test/core/db v0.2.9 => ./core/db
)

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 wind.kaisa@gmail.com

💰

×

Help us with donation