- 
     
 从github上拉取skywalking源码
 
git clone https://github.com/apache/skywalking.git如果执行以上拉取过程太慢,可以自己新建一个码云仓库拉取,具体如下
    
     https://blog.csdn.net/weixin_41618475/article/details/90262708
    
   
- 
     
 git clone时可能会碰到一个问题
 
    
     error: unable to create file apm-sniffer/apm-sdk-plugin/spring-plugins/spring-cloud/netflix-plugins/spring-cloud-feign-1.x-              plugin/src/main/java/org/apache/skywalking/apm/plugin/spring/cloud/netflix/feign/v11/define/NetflixFeignInstrumentation.java:Fil ename too long
     
     Checking out files: 100% (2137/2137), done.
     
     fatal: unable to checkout working tree
     
     warning: Clone succeeded, but checkout failed.
     
     You can inspect what was checked out with ‘git status’
     
     and retry the checkout with ‘git checkout -f HEAD
    
   
    关键字:
    
     Filename too long
    
    
    文件名太长,运行以下命令然后重新git clone便能解决:
   
git config --system core.longpaths true- 
     
 拉取代码成功后使用idea打开项目,过程中会下载很多maven依赖请耐心等待
 
- 
     
 编译skywalking(跟官方文档是一样的)
 
- git submodule init ,初始化子模块
- git submodule update 更新子模块
- 
     
 编译之前请先安装好node,要确保能使用npm命令
 
     
   
    
     并且需要把 apm-webapp工程的pom文件中npm的下载地址改成国内的,不然访问在编译过程中会因为访问不了国外的仓库而报错
    
   
     
   
    
     4
    
    . 进行编译(请先确保第三步没有问题再进行编译)
   
mvn package -Dmaven.test.skip=true
    
     5
    
    . 如果编译过程中报错:
    
     
      找不到或无法加载主类 org.apache.maven.wrapper.MavenWrapperMain
     
    
   
    
     
      解决方法运行如下命令: (没碰到可以忽略)
     
    
   
mvn -N io.takari:maven:wrapper
    
     6
    
    .再次执行编译命令如果遇到如下图错误需要在windows环境下安装protoc:
   
     
   
    
     (6.1)
    
    .下载需要的安装包:
    
     https://github.com/google/protobuf/releases
    
    
    protoc-3.1.0-win32.zip(protoc-2.5.0-win32.zip)
    
    protobuf-java-3.1.0.zip(protobuf-2.5.0.zip)
   
    
     (6.2)
    
    .将protoc-3.1.0-win32中的protoc.exe拷贝到
    
     c:\windows\system32
    
    中
   
    
     (6.3)
    
    .将proto.exe文件拷贝到解压后的protobuf-3.1.0\src目录中
   
    
     (6.4)
    
    .protobuf-3.1.0\java 目录下执行mvn package命令编辑该包生成protobuf-java-3.1.0.jar文件
   
(这一步相当于安装了位于protobuf-3.1.0\java\core\target目录中)
    
     安装完毕后继续执行第四步进行编译(如没遇到这个报错不管跳过就好)
    
   
- 
     
 设置 gRPC 的自动生成的代码目录,为源码目录 :
 
- 
     将
 
 apm-protocol/apm-network/target/generated-sources/protobuf
 
 目录下面
 
 grpc-java
 
 和
 
 java
 
 目录
 
 右键
 
 设置为
 
 Generated Rources Root
 
 。
   
- 
     将
 
 oap-server/server-core/target/generated-sources/protobuf
 
 目录下面
 
 grpc-java
 
 和
 
 java
 
 目录
 
 右键
 
 设置为
 
 Generated Rources Root
 
 。
- 
     将
 
 oap-server/server-receiver-plugin/skywalking-istio-telemetry-receiver-plugin/target/generated-sources/protobuf
 
 目录下面
 
 grpc-java
 
 和
 
 java
 
 目录
 
 右键
 
 设置为
 
 Generated Rources Root
 
 。
- 
     
 启动 SkyWalking OAP Server
 
- 
     
 启动之前安装
 
 ElasticSearch
ElasticSearch 安装教程如下:
    
     https://blog.csdn.net/weixin_41618475/article/details/90263001
    
   
安装好es,需要修改一下 server-starter中的application.yml中的ip地址
因为我的es装在虚拟机中,而项目中默认的ip是本地,所以我改成了如下
     
   
    
     2
    
    .运行 oap-server的server-starter的org.apache.skywalking.oap.server.starter.OAPServerStartUp的#main(args)方法,启动
   
Skywalking OAP Server
- 
     
 启动 SkyWalking UI
 
- 
     
 运行apm-webapp的org.apache.skywalking.apm.webapp.ApplicationStartUp的#main(args)方法,启动Skywalking
 
 
 UI,浏览器打开http://127.0.0.1:8080,输入账号密码admin/admin进行登录。
 
     
   
- 启动成功之后监控项目只需要在启动项目时加上vm参数就好了,参数如下:
    
     -javaagent:D:\MyWork\skywalking_workspace\1\incubator-skywalking\skywalking-agent\skywalking-agent.jar -Dskywalking.agent.service_name=nacos-provider -Dskywalking.collector.backend_service=localhost:11800
    
   
    
     参考文档以及博客:
    
   
    
     芋道源码
    
   
    
     http://www.iocoder.cn/SkyWalking/6/build-debugging-environment/
    
   
    
     官方文档
    
   
    
     不喜勿喷,随手做的笔记,有什么问题可以留言问博主,我看到了都会回答
    
   
    
     本文为原创文章,转载请标明出处。
    
   
 
