概述
上一篇文章,主要講述了如何在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