0
点赞
收藏
分享

微信扫一扫

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

  • 效果

go workspace 试用_golang

 

 

使用场景

进行版本测试,单体仓库管理(项目模块比较多的场景), 还有一种场景就是我们希望修复别人的模块(可以先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​​

举报

相关推荐

0 条评论