如果想学习Skywalking源码,可以使用IDEA等IDE工具来打开工程,修改代码后可以直接重新编译项目。
以下内容为官方文档的原文:
Setup your IntelliJ IDEA
NOTICE: If you clone the codes from GitHub, please make sure that you had finished step 1 to 3 in section Build from GitHub, if you download the source codes from the official website of SkyWalking, please make sure that you had followed the steps in section Build from Apache source code release.
Import the project as a maven project
Run
./mvnw compile -Dmaven.test.skip=true
to compile project and generate source codes. Because we use gRPC and protobuf.Set Generated Source Codes folders.
grpc-java
andjava
folders in apm-protocol/apm-network/target/generated-sources/protobufgrpc-java
andjava
folders in oap-server/server-core/target/generated-sources/protobufgrpc-java
andjava
folders in oap-server/server-receiver-plugin/receiver-proto/target/generated-sources/protobufgrpc-java
andjava
folders in oap-server/exporter/target/generated-sources/protobufgrpc-java
andjava
folders in oap-server/server-configuration/grpc-configuration-sync/target/generated-sources/protobufantlr4
folder in oap-/oal-grammar/target/generated-sources
下面按照官方文档的说明进行操作。下面为关键步骤的截图。
1、确保已经完成了从github下载源码并编译的操作,可参考 Skywalking开源项目:从Github下载、编译全过程
2、使用IDEA导入工程,这步时间比较久,请耐心等待,需要几十分钟
3、在 ./mvnw compile -Dmaven.test.skip=true 编译并生成源代码。因为项目使用了gRPC 和 protobuf 。
-Dmaven.test.skip=true,不执行测试用例,也不编译测试用例类
4、设以下目录为“Generated Source Codes”。
apm-protocol/apm-network/target/generated-sources/protobuf目录下的
grpc-java
和java
目录oap-server/server-core/target/generated-sources/protobuf目录下的
grpc-java
和java
目录oap-server/server-receiver-plugin/receiver-proto/target/generated-sources/protobuf目录下的
grpc-java
和java
目录oap-server/exporter/target/generated-sources/protobuf目录下的
grpc-java
和java
目录oap-server/server-configuration/grpc-configuration-sync/target/generated-sources/protobuf目录下的
grpc-java
和java
目录oap-server/oal-grammar/target/generated-sources目录下的
antlr4
目录
设置成功后的图标样式如下所示。貌似我的环境默认是设置的。
Maven 的常用命令
1、mvn compile 编译,将Java 源程序编译成 class 字节码文件。
2、mvn test 测试,并生成测试报告
3、mvn clean 将以前编译得到的旧的 class 字节码文件删除
4、mvn pakage 打包,动态 web工程打 war包,Java工程打 jar 包。
欢迎大家访问我们的开源项目(SkyWalking学习与实践):
https://gitee.com/OSABC/SkyWalkingDemo
欢迎感兴趣的同学参与到skywalking 开源项目学习与实践中。
学习前的基本要求:能自己独立把项目开发环境搭建起来;应用能部署起来;能看懂源代码的语法。
访问SkyWalking学习与实践开源项目