💻 在 Windows 系统上配置 go-zero 开发环境教程

本教程将详细介绍如何在 Windows 系统上配置 go-zero 微服务框架的开发环境,包括依赖安装、路径配置、常见问题等。


🧱 一、前置环境安装

1. 安装 Go

  • 下载地址:https://go.dev/dl/
  • 安装时可自定义路径(如:D:\Go
  • 安装完成后,验证是否成功:
go version

输出示例:

go version go1.21.3 windows/amd64

✅ 建议使用 Go 1.18 及以上版本


2. 安装 Git

  • 下载地址:https://git-scm.com/downloads
  • 安装位置可自定义
  • 安装后验证:
git --version

3. 安装 Protocol Buffers(protoc

go-zero 使用 Protobuf 定义 RPC 服务,需安装 protoc 编译器:

推荐方式:下载预编译版本
  • 下载地址:https://github.com/protocolbuffers/protobuf/releases
  • 选择适合的版本,如:protoc-21.12-win64.zip
  • 解压后,将 bin 目录加入系统环境变量 PATH

验证安装:

protoc --version

⚙️ 二、配置开发环境(迁移到 D 盘,避免占用 C 盘)

默认情况下,Go 会将依赖和工具安装到 C:\Users\<用户名>\go。我们建议将其迁移到 D 盘,提升可维护性和节省空间。


1. 配置环境变量(系统设置)

建议将 Go 安装到 D 盘,并设置如下变量:

变量名示例路径
GOROOTD:\Go
GOPATHD:\GoWorkspace
GOBIND:\GoWorkspace\bin

然后将以下路径加入系统环境变量 PATH

D:\Go\bin
D:\GoWorkspace\bin

2. 手动创建工作目录结构

在 D 盘创建以下目录(如不存在):

D:\GoWorkspace\src
D:\GoWorkspace\bin
D:\GoWorkspace\pkg

3. 配置 Go 环境参数

在终端中执行以下命令:

go env -w GOROOT=D:\Go
go env -w GOPATH=D:\GoWorkspace
go env -w GOBIN=D:\GoWorkspace\bin
go env -w GOPROXY=https://goproxy.cn,direct

查看当前配置:

go env

输出示例:

GOROOT="D:\Go"
GOPATH="D:\GoWorkspace"
GOBIN="D:\GoWorkspace\bin"

📦 三、安装 go-zero 与 goctl 工具

1. 初始化项目并自动拉取 go-zero

go mod init your_project
go get github.com/zeromicro/go-zero

2. 安装 goctl(go-zero 的代码生成工具)

推荐使用 go install 方式(Go 1.17+ 必须指定版本):

go install github.com/zeromicro/go-zero/tools/goctl@latest

确保 $GOBIN(如:D:\GoWorkspace\bin)已加入环境变量 PATH,然后验证安装:

goctl --version

🚀 四、快速创建 go-zero 项目

创建 REST 项目

goctl api new demo
cd demo
go mod tidy
go run demo.go

生成结构:

.
├── demo.api
├── etc
│   └── demo.yaml
├── internal
│   ├── config
│   ├── handler
│   ├── logic
│   ├── svc
│   └── types
└── demo.go

创建 RPC 项目

goctl rpc new greet
cd greet
go mod tidy

🧩 五、常见问题排查

问题解决方案说明
goctl 命令找不到检查 $GOBIN 是否已加入系统环境变量 PATH
protoc 报错或未识别检查是否正确安装并将 protoc.exe 所在的 bin 路径加入了 PATH 环境变量
中文或空格路径导致构建失败避免在项目路径中使用中文、空格或特殊字符
推荐 IDE推荐使用 GoLand 或 VSCode + Go 插件

🛠 六、附加技巧与推荐配置

1. goctl 插件模板升级与环境检查

goctl upgrade -u
goctl env check

2. 使用 goctl 生成 handler 和 logic

goctl api go -api demo.api -dir .

会自动生成路由、业务逻辑和服务定义,极大提升开发效率。


✅ 项目目录建议

推荐将项目统一放在:

D:\GoWorkspace\src\

或者使用 Go Modules,可将项目放在任意路径下(如 D:\Projects\xxx),示例:

mkdir D:\Projects\demo
cd D:\Projects\demo
go mod init demo

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/88191.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/88191.shtml
英文地址,请注明出处:http://en.pswp.cn/web/88191.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开源=白嫖?

国内有一个非常浓重的思想&#xff0c;开源&#xff0c;开源就是免费&#xff0c;就是白嫖&#xff0c;就是不花钱&#xff0c;白给。那么什么是开源&#xff1f;“源代码”是软件中大多数计算机用户从未见过的部分;它是计算机程序员可以操纵的代码&#xff0c;以改变一个软件(…

2048-控制台版本

2048控制台版 文章目录2048控制台版实现效果&#xff1a;在这里插入图片描述库函数使用&#xff1a;初始化变量功能函数实现&#xff1a;状态判断函数int Judge&#xff08;&#xff09;&#xff1b;数字生成函数 bool CtreateNumber&#xff08;&#xff09;打印游戏界面 void…

提取出Wallpaper Engine壁纸的mpkg类静态壁纸

github 地址 https://github.com/notscuffed/repkg先下载软件2853…26目录这样获取有的直接mp4格式&#xff0c;就不能用这方法准备好后 cmd 进入repkg目录 执行 repkg extract ./294...333/scene.pkg

AI健康小屋“15分钟服务圈”:如何重构社区健康生态?

AI健康小屋作为“15分钟服务圈”的核心载体&#xff0c;通过技术赋能与场景重构&#xff0c;正推动社区健康生态从被动治疗向主动预防、从单一服务向全周期管理转型。那我们应该如何重构社区健康生态呢&#xff1f;服务模式创新1.全时段覆盖AI健康小屋通过分时段服务满足不同群…

[netty5: WebSocketFrame]-源码分析

WebSocketFrame WebSocketFrame 是 Netty 中用于表示 WebSocket 消息帧的抽象基类&#xff0c;封装了帧的内容、分片标志和扩展位信息&#xff0c;供各类具体帧&#xff08;如文本、二进制、控制帧&#xff09;继承使用。 public abstract class WebSocketFrame extends Buffer…

【加解密与C】非对称加解密(三)ECC椭圆曲线

ECC椭圆曲线的基本概念椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff0c;ECC&#xff09;是一种基于椭圆曲线数学的公钥密码体制。与传统的RSA相比&#xff0c;ECC在相同安全级别下使用更短的密钥&#xff0c;计算效率更高&#xff0c;适用于资源受限的环境。…

力扣网编程150题:加油站(贪心解法)

一. 简介 前面一篇文章使用暴力解法来解决力扣网150 题目&#xff1a;加油站。文章如下&#xff1a; 力扣网编程150题&#xff1a;加油站&#xff08;暴力解法&#xff09;-CSDN博客 暴力解法就是遍历了所有元素作为起始点的可能&#xff0c;算法时间复杂度为 O(n*n)&#x…

windwos 设置redis长久密码不生效

1、设置长久密码redis.windows.conf 文件修改对应的设置密码2、启动时设置对应的加载配置文件

物联网(IoT)领域存在多种协议

物联网&#xff08;IoT&#xff09;领域存在多种协议&#xff0c;主要是因为不同的应用场景对通信的需求差异很大&#xff0c;包括实时性、带宽、功耗、设备兼容性、安全性等。以下从协议多样性的原因和你提到的具体协议&#xff08;如 dc3-driver-* 模块&#xff09;展开说明&…

二、encoders

文章目录一、batch_encoder (用于 BFV)1. 概述2. 数学原理3. 使用方法4. 代码示例二、ckks_encoder (用于 CKKS)在 1. bfv_basics.cpp 中&#xff0c;我们展示了如何使用BFV方案执行非常简单的计算。计算是在 plain_modulus 参数的模下执行的&#xff0c;并且 只使用了 BFV 明文…

数据一致性解决方案总结

数据一致性解决方案总结 我们在系统中&#xff0c;主要进行了数据冗余&#xff0c;那么就会带来数据一致性的问题。常见的数据一致性问题有&#xff1a;数据库主从同步延迟导致的读数据不一致&#xff1b;数据库主主之间数据的不一致&#xff1b;缓存和数据库之间的数据不一致。…

17.Spring Boot的Bean详解(新手版)

文章目录1. 什么是Bean&#xff1f;从零开始理解1.1 Bean的定义1.2 为什么需要Bean&#xff1f;1.3 Bean vs 普通对象的区别2. Spring容器&#xff1a;Bean的家2.1 什么是Spring容器&#xff1f;2.2 容器的工作流程3. Bean的声明方式详解3.1 使用Component及其专门化注解3.1.1 …

cherryStudio electron因为环境问题无法安装解决方法或打包失败解决方法

$env:ELECTRON_MIRROR"https://npmmirror.com/mirrors/electron/"; $env:ELECTRON_CUSTOM_DIR"{{ version }}"; yarn install1. 上面是关于electron安装失败的解决方法. 也可以通过到git上下面包,解压后,放到对应的目录下面,并把里面的build文件夹删除, b…

微服务架构中数据一致性保证机制深度解析

在微服务架构中&#xff0c;数据一致性是分布式系统设计的核心挑战。由于服务拆分后数据自治&#xff08;每个服务独立数据库&#xff09;&#xff0c;跨服务操作的一致性保障需突破传统单体事务的局限。本文从一致性模型、核心解决方案、技术实现及面试高频问题四个维度&#…

【Gin】HTTP 请求调试器

文章目录 项目概述代码功能详解1. 导入必要的包2. 主函数和路由设置3. 请求信息捕获4. 请求参数和头信息5. 请求体处理5.1 JSON 数据处理5.2 表单数据处理5.3 Multipart 表单数据处理5.4 其他类型数据处理6. 构造响应对象7. 返回 JSON 响应功能特点使用场景完整代码项目概述 这…

物联网(IoT)领域的协议

物联网&#xff08;IoT&#xff09;领域的通信协议种类繁多&#xff0c;不同协议适用于不同的应用场景&#xff08;如低功耗设备、工业自动化、家庭智能设备等&#xff09;。以下是主要物联网协议的分类及详细解释&#xff1a;一、物联网协议分类物联网协议通常分为两大类&…

专题一_双指针_四数之和

一&#xff1a;题目解析 题目链接&#xff1a;18. 四数之和 - 力扣&#xff08;LeetCode&#xff09; 注&#xff1a;本题是在上题的基础上讲解的&#xff1a;专题一_双指针_三数之和-CSDN博客 解析&#xff1a;和三数之区别在于找四元组和为targe的数字 而不是0 二&#xff1a…

Spring Boot多数据源配置详解

Spring Boot多数据源配置详解 在实际企业开发中&#xff0c;随着业务复杂度提升&#xff0c;单一数据源已无法满足所有场景需求。比如&#xff1a;读写分离、分库分表、数据迁移、微服务整合等&#xff0c;这时就需要用到多数据源配置。本文将从原理、配置、常见问题和最佳实践…

项目进度严重依赖关键人,如何分散风险

项目进度严重依赖关键人的风险&#xff0c;可以通过建立知识共享机制、强化团队协作模式、实施交叉培训和培养后备人才、优化流程标准化等措施有效分散。其中&#xff0c;实施交叉培训和培养后备人才尤为重要&#xff0c;通过培养多个成员具备相似的关键技能&#xff0c;能够迅…

【RK3568+PG2L50H开发板实验例程】FPGA部分 | 以太网传输实验例程

本原创文章由深圳市小眼睛科技有限公司创作&#xff0c;版权归本公司所有&#xff0c;如需转载&#xff0c;需授权并注明出处&#xff08;www.meyesemi.com)1.实验简介实验目的&#xff1a;完成 DDR3 的读写测试。实验环境&#xff1a;Window11 PDS2022.2-SP6.4芯片型号&#x…