Skywalking6.1源码编译(附过程中遇到的bug)

  • Post author:
  • Post category:其他



  • 从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(跟官方文档是一样的)
  1. git submodule init ,初始化子模块
  2. git submodule update 更新子模块

  3. 编译之前请先安装好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

  1. 启动之前安装

    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

  1. 运行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/


官方文档


https://github.com/apache/skywalking/blob/v6.0.0-alpha/docs/en/guides/How-to-build.md#build-from-github


不喜勿喷,随手做的笔记,有什么问题可以留言问博主,我看到了都会回答


本文为原创文章,转载请标明出处。



版权声明:本文为weixin_41618475原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。