写项目时遇到的相关问题汇总
Go 相关
包导入不了
go mod tidy / 直接下载都无法导入,即使彻底删掉文件夹之后重来也无法导入。
在创建项目中选择 Go,而不是 Go (GOPATH)。如果选择了 Go (GOPATH),设置 -> Go 模块 -> 启用 Go 模块集成
YAPI 修改密码后显示密码错误
YAPI 只有在第一次初始化数据库时,才会读取 YAPI_ADMIN_PASSWORD 环境变量并创建账号。因为之前已经启动过一次,数据库文件(./data/db)已经生成了,并且写入了旧密码。当你修改 docker-compose.yml 并重启时,YAPI 发现数据库已经存在,就不会再次覆盖修改密码了。
需要在 docker-YApi 目录下依次执行:
docker compose downsudo rm -rf datadocker compose up -d隔离开发环境和生产环境时设置环境变量不生效
再设置环境变量之后,需要重启 Goland,而不能只重启终端,否则环境变量不会生效。如果有多个 Goland 窗口打开,需要先全部关闭后再打开。
Nacos 容器相关问题
Nacos 容器无法启动
虚拟机内存分配过小,对于个人来讲,可以在安装时适当减少内存分配,例如:
docker run -d \ --name nacos \ -p 8848:8848 \ -p 9848:9848 \ -p 9849:9849 \ -p 8080:8080 \ -e MODE=standalone \ -e SPRING_DATASOURCE_PLATFORM=mysql \ -e MYSQL_SERVICE_HOST=192.168.63.131 \ -e MYSQL_SERVICE_PORT=3306 \ -e MYSQL_SERVICE_DB_NAME=nacos \ -e MYSQL_SERVICE_USER=root \ -e MYSQL_SERVICE_PASSWORD=123456 \ -e NACOS_AUTH_ENABLE=true \ -e NACOS_AUTH_TOKEN=U2VjcmV0S2V5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5 \ -e NACOS_AUTH_IDENTITY_KEY=nacos_server_key \ -e NACOS_AUTH_IDENTITY_VALUE=nacos_server_value \ -e JVM_XMS=512m \ -e JVM_XMX=512m \ --restart=always \ nacos/nacos-server:latestNacos 容器启动后创建配置无法成功写入数据库
换成 Chrome 无痕模式或者干脆换成 Edge 就可以了。尝试过清楚缓存并硬性加载也不行,关闭插件也不行,具体不清楚为什么。只有 Chorme 会遇到这个问题。
proto相关
服务器实现结构体的强制性接口约束
新版 gRPC 在生成的接口中包含了一个“私有”方法(例如 mustEmbedUnimplementedUserServer())。如果不嵌入这个结构体,你的 UserServer 就没有这个方法,编译器会报错,提示它没有完全实现接口。例如正确写法例如:
type server struct { proto.UnimplementedUserServer}proto 文件的同步
通过 .proto 文件定义服务接口规范,需保持两端定义一致。字段编号必须严格一致,字段顺序可调整。字段编号冲突会导致数据错位。
接口变更需同步更新所有调用方的 .proto 文件,禁止手动修改自动生成的桩代码。
Java相关
java<程序包org>程序包org>.aspectj.weaver.reflect不存在
更新Maven包,并在IDEA中同步所有Maven项目和重新加载所有Maven项目
aspectjweaver-1.8.13.jar时出错
选择项目文件夹,在Maven中选择生成源代码并更新文件夹
base64decoder 找不到符号
从Java 8开始,应使用java.util.Base64类来处理Base64编码和解码。这个类提供了Base64.Decoder和Base64.Encoder两个嵌套类:
// Java 8及更高版本使用java.util.Base64Base64.Decoder decoder = Base64.getDecoder();byte[] decodedBytes = decoder.decode(encodedString);
Base64.Encoder encoder = Base64.getEncoder();String encodedString = encoder.encodeToString(byteArray);文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!


