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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用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 工具