概述
上一篇文章,主要讲述了如何在 window 上搭建 SkyWalking
。当然作为一个有理想的程序员 🐶,不仅要用,而且还想看看源码,说不定还能贡献个代码,因此搭建个调试环境那将十分必要的。因此本篇文章,将会从克隆源码开始到调试整个过程,分阶段来进行详细讲解 SkyWalking
编译环境的搭建。
1.依赖工具
工欲善其事必先利其器,因此在构建之前需要说明一些需要的工具:
- JDK 8:官方提倡
- Maven3
- Git
- npm
- IDEA:官方推荐使用 IDEA 来进行搭建,虽然说也给了 eclipse 的说明。但关于 eclipse 的搭建说明已经好多年没有更新该部分内容了。
2. 下载源码
执行如下命令从 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 构建工具进行构建,可能又要持续一段时间,请耐心等待 😄
3. 编译源码
- 打开 IDEA Terminal 执行 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
设置后对应目录编程蓝色,则表明设置成功。
4.启动 OAP Server
运行 OAP-server
的 org.apache.skywalking.oap.server.starter.OAPServerStartUp
的 #main(args)
方法,启动 SkyWalking OAP Server。
启动后出现控制台打印如下内容,证明启动成功。
初次编译时,时间很长,请耐心等待。(我电脑当时第一次编译差不多用了将近 8 分钟)。
5.启动 SkyWalking UI
- 运行
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
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于