go workspace 试用

golang workspace 提供了类似单体仓库管理模块的能力,类似npm 的yarn workspace 或者lerna ,当然npm 也提供了类似的能力,maven,gradle 都可以提供类似的
能力

参考使用

  • 项目结构
 
├── cli
├── go.mod
└── main.go
├── go.work
└── userlogin
    ├── appconfg.go
    └── go.mod
  • 简单说明
    cli 模块使用了userlogin 模块
    go.work 定义了workspace
    内容如下
 
go 1.19
use (
  ./cli
  ./userlogin
) 

appconfg.go

package userlogin
 
type UserLoginConf struct {
  Name    string
  Age     int
  Version string
}

main.go

package main
 
import (
  "fmt"
 
  "github.com/rongfengliang/userlogin"
)
 
func main() {
  conf := userlogin.UserLoginConf{
    Name: "dalong",
    Age:  333,
  }
  fmt.Printf("%v", conf)
 
}
  • 运行
go run cli/main.go
  • 效果

 

 

使用场景

进行版本测试,单体仓库管理(项目模块比较多的场景), 还有一种场景就是我们希望修复别人的模块(可以先clone,然后使用workspace 模式使用,进行测试修改)
kustomize 就使用worksapce,是一个比较有用的新特性,注意需要golang 1.18+ 版本

参考资料

参考资料

https://go.dev/doc/tutorial/workspaces
https://github.com/golang/tools/blob/master/gopls/doc/workspace.md
https://github.com/rongfengliang/golang-workspace-learning

posted on   荣锋亮  阅读(548)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2019-11-10 plv8 触发器使用
2019-11-10 plv8 + hashids 生成短连接id
2019-11-10 Generating YouTube-like IDs in Postgres using PL/V8 and Hashids
2019-11-10 使用plv8+hashids生成短链接服务
2019-11-10 使用plv8+ shortid npm包构建一个短唯一id服务
2019-11-10 通过ALTER DATABASE postgres SET 解决 plv8 plv8.start_proc 问题
2018-11-10 graphql-modules 企业级别的graphql server 工具

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示