zagnix 2020-06-04
上一篇文章,主要讲述了如何在window上搭建SkyWalking
。当然作为一个有理想的程序员??,不仅要用,而且还想看看源码,说不定还能贡献个代码,因此搭建个调试环境那将十分必要的。因此本篇文章,将会从克隆源码开始到调试整个过程,分阶段来进行详细讲解SkyWalking
编译环境的搭建。
工欲善其事必先利其器,因此在构建之前需要说明一些需要的工具:
执行如下命令从gihub仓库上拉去源码:
git clone --recurse-submodules https://github.com/apache/skywalking.git cd skywalking/ ./mvnw clean package -DskipTests 或 git clone https://github.com/apache/skywalking.git cd skywalking/ git submodule init git submodule update ./mvnw clean package -DskipTests
文件比较大可能需要费点时间,在拉取完毕后导入IDEA会自动使用Maven构建工具进行构建,可能又要持续一段时间,请耐心等待??
./mvnw compile -Dmaven.test.skip=true
执行完成之后,会生成许多源码文件,因此我们需要将文件所在目录设置为源码目录,便于IDEA在编译时进行识别。
分别将下边5个目录设置为源码目录:
apm-protocol/apm-network/target/generated-sources/protobuf
oap-server/server-core/target/generated-sources/protobuf
oap-server/server-receiver-plugin/receiver-proto/target/generated-sources/protobuf
oap-server/exporter/target/generated-sources/protobuf
oap-server/server-configuration/grpc-configuration-sync/target/generated-sources/protobuf
oap-server/oal-grammar/target/generated-sources
设置方法如下(以apm-protocol/apm-network/target/generated-sources/protobuf
为例):
在IDEA上找到该目录-->右键-->Mark Directory as-->Generated Source Root
设置后对应目录编程蓝色,则表明设置成功。
运行OAP-server
的org.apache.skywalking.oap.server.starter.OAPServerStartUp
的#main(args)
方法,启动SkyWalking OAP Server。
启动后出现控制台打印如下内容,证明启动成功。
初次编译时,时间很长,请耐心等待。(我电脑当时第一次编译差不多用了将近8分钟)。
apm-webapp
的 org.apache.skywalking.apm.webapp.ApplicationStartUp
的 #main(args)
方法,启动 SkyWalking UI 。http://127.0.0.1:8080
,出现如下界面在搭建过程中遇到的问题:
Could not extract the Node archive: Could not extract archive
找到报错的压缩包删除之后,重新进行构建
Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:3. 1
对应位置编码不符合maven的编码规范。我当时报错的文件是gRPC产生的因此我将其删除后,重新构建,然后就成功了。
https://github.com/apache/skywalking/blob/master/docs/en/guides/How-to-build.md