
概述
上一篇文章,主要講述了如何在window上搭建
SkyWalking
。當然作為一個有理想的程式員:dog:,不僅要用,而且還想看看源碼,說不定還能貢獻個代碼,是以搭建個調試環境那将十分必要的。是以本篇文章,将會從克隆源碼開始到調試整個過程,分階段來進行詳細講解
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建構工具進行建構,可能又要持續一段時間,請耐心等待:smile:
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
方法,啟動 SkyWalking UI 。#main(args)
- 浏覽器打開
,出現如下界面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