proto 文件缺失
我采取的方式非常的简单粗暴,要下载Sky服务端代码,就直接github 选择对应的 tag 下载:https://github.com/apache/skywalking/tree/v9.7.0
下载完成后本地直接启动OAPServerStartUp 会发现有很多的类找不到,这些类找不到的核心原因是因为:
以下述 apm-network 服务为例,该服务中main 服务下有一个 proto 文件夹,该 proto 文件夹实际是一个远程存储库的引用,该远程库中对应的就是一系列的 grpc proto 文件的定义

我们直接跳转到这个存储库中,该存储库中的 proto 定义是这样的:

由于我们是直接将 Skywalking 的主代码库直接 download 下来的,所以这些远程引用的存储库就没有被下载下来,这会导致,有非常多的 grpc 的 proto 定义都没有被下载下来,并不是只有上面一个 proto 库,Skywalking 的代码中有很多 proto,分散在各个模块中。
而解决这种问题的方式也非常简单,直接把远程仓库中的 proto 文件直接拷贝到本地缺失的文件目录中即可,然后再去执行该项目的 compile,此时就会基于所定义的proto 文件生成对应的 grpc 的 java 类

antlr4 .g4 文件缺失
除了上述的 proto 文件外,还需要我们手动将一些目录进行一下 compile 编译,目的是将对应的 .g4 文件生成对应的java 类;这里的.g4文件就是 antlr4 一个做语法分析的库所实现的能力

.graphqls 文件缺失
除了上述的 proto 和.g4 文件外,还会存在缺失.graphqls文件的情况,这个其实也是该query-protocol目录实际是引用远程仓库的问题,直接拷贝对应的远程仓库的目录放置到该对应的项目目录下即可。
该目录中的文件是项目启动时会去读取的配置文件,所以只需要将配置放到指定目录即可。不用编译为具体的 java 文件。

解决文件缺失的方式
1、直接在对应的 Apache 的官网,下载对应的源码,这是 Skywalking 已经打包后的源码,所以是都已经整合进来,不缺失具体文件的
https://skywalking.apache.org/downloads/
2、直接在Idea 中 git clone 具体的 github 下载地址。而不是在 github 上 download 对应的源码后再打开。
直接 idea 中 git clone 源码链接,此时是采用的本地和远程关联的方式,这种方式应该是会把对应的其他远程仓库中的文件一并 clone 下来。(网络一切正常的情况下,按道理是这样)
3、https://blog.csdn.net/c_zyer/article/details/132268524
这有一个博客,不过具体有没有用,没怎么参考
吴晟 有本 Skywalking 实战的书,里面也有提到这个,如何本地运行,不过书籍发布时间有点久了,但可以参考一下。