go-work工作区

go-work工作区


前篇

相比于 go.mod, go.work 可以直接修改引入的模块, 并生效, 不需要 go mod vendor, 不会生成到 vendor


使用工作区

  1. 创建 go.work 文件, 直接指定模块

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    go 1.22

    toolchain go1.22.5

    use (
    ./go-lib // 引入的模块
    . // 本模块
    )

    replace go-lib v0.0.0-00010101000000-000000000000 => ./go-lib // 必须指定版本
    • 这里增加了引入模块, go.mod 中相应的模块就要移除掉
  2. 使用刷新一下

    1
    go work vendor
    • 使用了 工作区 模式后, go mod vendor 命令就不能用了

踩坑

goland 编辑器提示找不到模块但又能编译通过

  • 解决办法将编辑器升级到最新即可