南京 微网站 建站,杭州网站建设哪家快速上线,wordpress图片插件放大,手机首页设计工作区模式 1 #xff09;概述
导入内部开发包#xff0c;之前有两种处理方式 一种是使用Go Modules的 replace 语句#xff0c;将远程包替换成本地包的路径 这种注意#xff0c;在开发完成之后还需将replace去掉再提交到仓库如果有多个这种内部包#xff0c;这种操作还是…工作区模式 1 概述
导入内部开发包之前有两种处理方式 一种是使用Go Modules的 replace 语句将远程包替换成本地包的路径 这种注意在开发完成之后还需将replace去掉再提交到仓库如果有多个这种内部包这种操作还是很麻烦的 另一种方式是将包上传到git平台再使用 Go Modules 来处理依赖问题 这种也是一样只有提交到远程仓库才能调试不适合开发环境 现在有一种不需要使用上述方式来简便调试内部私有包这种是 工作区模式即 (go 1.8 版本之后的模式) 这种跟 Go Path 时代的 workspace 不同的是它可以支持本地多个 Go Modules 的开发
2 演示
目录结构如下 workspace pkg/ go.modpkg.go project/ go.modmain.go 比如这里 pkg 包的go.mod中声明该包属于 gitlab 平台的例如: module gitlab.com/xxx/pkg 实际上并没有在我们的gitlab平台上创建这样一个仓库这个时候我们拉取这个包是拉取不到的 $ go mod tidy 是找不到这样一个包的 现在不通过上传这个包的情况下在project项目中使用这个包内的属性或方法 在 workspace 目录下初始化一个工作区 $ go work init pkg project 如果有多个工程或包的目录都可以在上面命令中继续添加 之后在当前目录下为我们生成一个 go.work 的文件, 内容如下 go 1.20use(./gkg1./project
)使用这种方式不用关心私有包是否上传到远程仓库即可互相调用 在开发私有包的时候就可以使用这个 workspace 目录在本地开发完之后 将我们这些包及工程代码分别提交到远程仓库 在实际项目中多个模块之间可能还存在其他的依赖 可以在 gowork 所在的目录也就是我们这个 workspace目录 执行一个 $ go work sync 这个命令就可以同步工作区下面的工程依赖