Nacos2.2.0源码搭建遇到的问题
1、编译问题
1.1、java: 程序包com.alibaba.nacos.consistency.entity不存在
1.2、java: 找不到符号 符号: 方法 isStringEmpty(java.lang.Object) 位置: 类 com.google.protobuf.GeneratedMessageV3
1.3、程序包istio.mcp.v1alpha1.MetadataOuterClass不存在
2、问题原因及解决方案
原因:nacos在1.4.1版本之后采用了protobuf,protobuf是google团队开发的用于高效存储和读取结构化数据的工具。这个包是由protobuf在编译时自动生成。所以上述缺失的代码在编译时自动生成的,所以需要优先使用maven编译将它们生成出来。
mvn clean compile -Dmaven.test.skip=true
编译详情如下:
在target目录下查看已经生成entity的包,详情如下:
再次启动,详情如下:
访问 http://localhost:8848/nacos,出现登录界面:
输入账密:nacos/nacos。
至此,Naocs源码可以正常执行了。
3、异常提示消除
虽然nacos可以正常启动,但源码依旧会有异常提示,对由强迫症的人来说非常不舒服。如下:
3.1、下载Protoc版本
下载protoc版本,这里我选择的是3.20.1版本。下载地址:https://github.com/protocolbuffers/protobuf/releases/tag/v3.20.1。
3.2、解压,并添加到环境变量中
3.3、检查版本
在DOS窗口执行命令:
protoc --version
查看是否环境变量是否加入成功,详情如下:
3.4、进入源码 consistency/src/main/proto 的路径下,使用cmd命令,运行如下指令
protoc --java_out=../java/ ./consistency.proto
protoc --java_out=../java/ ./Data.proto
切换到指定的目录,并执行上述命令:
查看 consistency 中已经生成了 entity :