nacos2.2.0源码搭建遇到的问题

发布时间 2023-11-09 09:43:42作者: 无虑的小猪

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的包,详情如下:

 0

  再次启动,详情如下:

0

  访问 http://localhost:8848/nacos,出现登录界面:

  输入账密:nacos/nacos。

0

  至此,Naocs源码可以正常执行了。

3、异常提示消除

  虽然nacos可以正常启动,但源码依旧会有异常提示,对由强迫症的人来说非常不舒服。如下:

0   

3.1、下载Protoc版本

  下载protoc版本,这里我选择的是3.20.1版本。下载地址:https://github.com/protocolbuffers/protobuf/releases/tag/v3.20.1

 

3.2、解压,并添加到环境变量中

  0

3.3、检查版本

  在DOS窗口执行命令:

protoc --version

  查看是否环境变量是否加入成功,详情如下:

 0

3.4、进入源码 consistency/src/main/proto 的路径下,使用cmd命令,运行如下指令

protoc --java_out=../java/ ./consistency.proto
protoc --java_out=../java/ ./Data.proto

  切换到指定的目录,并执行上述命令:

   查看 consistency 中已经生成了 entity :