当前位置: 首页 > news >正文

skywalking源码本地编译运行经验总结

前言

最近工作原因在弄skywalking,为了进一步熟悉拉了代码下来准备debug,但是编译启动项目我就费了老大劲了,所以准备写这篇,帮兄弟们少踩点坑。

正确步骤

既然是用开源的东西,那么最好就是按照人家的方式使用,别随便百度找一些自作聪明的做法,最后一个坑接一个坑。

https://github.com/apache/skywalking/blob/master/docs/en/guides/How-to-build.md

这里我附上了官方如何构建的教程

(一)拉取项目编译阶段

千万不要一上来就git clone

因为skywalking项目中有一些协议是不在skywalking这个项目里的,是在别的项目里的,比如apm-network

git clone --recurse-submodules https://github.com/apache/skywalking.git
cd skywalking/ORgit clone https://github.com/apache/skywalking.git
cd skywalking/
git submodule init
git submodule update

官方给出了对应的两种拉取项目代码的方式,具体有哪些代码是从其他项目里拉取,可以看根目录的 .gitmodules 文件,对应的这些都是。

[submodule "apm-protocol/apm-network/src/main/proto"]path = apm-protocol/apm-network/src/main/protourl = https://github.com/apache/skywalking-data-collect-protocol.git
[submodule "oap-server/server-query-plugin/query-graphql-plugin/src/main/resources/query-protocol"]path = oap-server/server-query-plugin/query-graphql-plugin/src/main/resources/query-protocolurl = https://github.com/apache/skywalking-query-protocol.git
[submodule "skywalking-ui"]path = skywalking-uiurl = https://github.com/apache/skywalking-rocketbot-ui.git
[submodule "test/e2e-v2/java-test-service/e2e-protocol/src/main/proto"]path = test/e2e-v2/java-test-service/e2e-protocol/src/main/protourl = https://github.com/apache/skywalking-data-collect-protocol.git

项目拉取成功之后进行编译即可

mvn compile -Dmaven.test.skip=true

该部分相关问题

1. skywalking项目拉取正常,但是拉取相关其他项目代码的时候出现connect timeout之类的

建议开梯子,这是最优方案

2.我还遇到个最极端的,就是都拉取成功了,但是编译的时候,xxxxxx类找不到

最后找了很久下来发现,还是拉取的东西不全,解决方案可以删除对应的目录,比如apm-protocol/apm-network/src/main/proto,具体看是哪个类找不到哈,删除完之后 git submodule init,git submodule update就可以了

3.编译的时候建议将apm-webapp模块下的frontend-maven-plugin插件注释掉,这块会去装npm很慢,咱也用不上,主要还是看后端代码

(二)运行项目

项目编译成功之后,idea运行报错xxxxxxx不存在,因为skywalking中部分代码是编译生成的,所以需要将对应这些目录mark as source root即可

相关文章:

skywalking源码本地编译运行经验总结

前言 最近工作原因在弄skywalking,为了进一步熟悉拉了代码下来准备debug,但是编译启动项目我就费了老大劲了,所以准备写这篇,帮兄弟们少踩点坑。 正确步骤 既然是用开源的东西,那么最好就是按照人家的方式使用&…...

K8s架构简述

以部署一个nginx服务说明kubernetes系统各个组件调用关系: 一旦kubernetes环境启动之后,master和node都会将自身的信息存储到etcd数据库中 一个nginx服务的安装请求会首先被发送到master节点的apiServer组件 apiServer组件会调用scheduler组件来决定到底…...

linkedlist和arraylist的区别

LinkedList和ArrayList都是常见的数据结构,用于存储和操作集合元素,如果需要频繁进行插入和删除操作,LinkedList可能更适合。如果需要快速随机访问和较小的内存占用,ArrayList可能更合适。 以下是它们之间存在一些关键的区别&…...

[尚硅谷React笔记]——第2章 React面向组件编程

目录: 基本理解和使用: 使用React开发者工具调试函数式组件复习类的基本知识类式组件组件三大核心属性1: state 复习类中方法this指向: 复习bind函数:解决changeWeather中this指向问题:一般写法:state.htm…...

嵌入式学习笔记(40)看门狗定时器

7.5.1什么是看门狗、有何用 (1)看门狗定时器和普通定时器并无本质区别。定时器可以设定一个时间,在这个时间完成之前定时器不断计时,时间到的时候定时器会复位CPU(重启系统)。 (2)系统正常工作的时候当然不希望被重启&#xff0…...

点击、拖拉拽,BI系统让业务掌握数据分析主动权

在今天的商业环境中,数据分析已经成为企业获取竞争优势的关键因素之一。然而,许多企业在面对复杂的数据分析工具时,却常常感到困扰。这些工具往往需要专业的技术人员操作,而且界面复杂,难以理解和使用。对业务人员来说…...

C++模拟题[第一周-T1] 扑克

[第一周-T1] 扑克 题目描述 斗地主是一种使用 A \tt A A 到 K \tt K K 加上大小王的共 54 54 54 张扑克牌来进行的游戏&#xff0c;其中大小王各一张&#xff0c;其它数码牌各四张。在斗地主中&#xff0c;牌的大小关系根据牌的数码表示如下&#xff1a; 3 < 4 < 5 …...

ciscn_2019_s_9

ciscn_2019_s_9 Arch: i386-32-little RELRO: Partial RELRO Stack: No canary found NX: NX disabled PIE: No PIE (0x8048000) RWX: Has RWX segments32位&#xff0c;啥也没开&#xff0c;开心愉悦写shellcode int pwn() {char s[24]; // [esp8…...

微信、支付宝、百度、抖音开放平台第三方代小程序开发总结

大家好&#xff0c;我是小悟 小伙伴们都开启小长假了吧&#xff0c;值此中秋国庆双节之际&#xff0c;小悟祝所有的小伙伴们节日快乐。 支付宝社区很用心&#xff0c;还特意给寄了袋月饼&#xff0c;愿中秋节的圆月带给你身体健康&#xff0c;幸福团圆&#xff0c;国庆节的旗帜…...

C语言协程

协程&#xff08;Coroutine&#xff09;是一种程序运行方式&#xff0c;相比于线程和进程&#xff0c;协程更加轻量级&#xff0c;可以被视为一种用户态的线程&#xff0c;不需要内核的参与。 协程的特点在于其执行过程中可以被挂起&#xff08;Suspend&#xff09;&#xff0…...

RK3588安装python3.11(ubuntu18.04)

1.前言 看到rknn_toolkit_lite2更新了python3.11的安装包&#xff0c;马上更新一下 2.RK3588安装python3.11 Ubuntu上编译Python 3.11&#xff0c;您可以按照以下步骤进行操作&#xff1a; (1) 准备编译环境 在开始之前&#xff0c;确保您的系统已安装必要的编译工具和依赖项…...

‘Could not find first log file name in binary log index file‘的解决办法

mysql主从报异常Got fatal error 1236 from master when reading data from binary log: Could not find first log file name in binary log index file 数据库主从出错: Slave_IO_Running: No 一方面原因是因为网络通信的问题也有可能是日志读取错误的问题。以下是日志出错…...

快速排序与冒泡排序以及代码

快速排序 快速排序&#xff08;Quicksort&#xff09;是一种常用的排序算法&#xff0c;它基于分治的思想。 时间复杂度&#xff1a;O&#xff08;nlogn&#xff09; 空间复杂度&#xff1a;O&#xff08;logn&#xff09; 快速排序的基本思想如下&#xff1a; 选择一个元素…...

[React] 性能优化相关 (一)

文章目录 1.React.memo2.useMemo3.useCallback4.useTransition5.useDeferredValue 1.React.memo 当父组件被重新渲染的时候&#xff0c;也会触发子组件的重新渲染&#xff0c;这样就多出了无意义的性能开销。如果子组件的状态没有发生变化&#xff0c;则子组件是不需要被重新渲…...

云中网络的隔离GREVXLAN

底层的物理网络设备组成的网络我们称为 Underlay 网络&#xff0c;而用于虚拟机和云中的这些技术组成的网络称为 Overlay 网络&#xff0c;这是一种基于物理网络的虚拟化网络实现。 第一个技术是 GRE&#xff0c;全称 Generic Routing Encapsulation&#xff0c;它是一种 IP-o…...

【【萌新的RiscV学习之流水线控制-9】】

萌新的RiscV学习之流水线控制-9 我们按照在之前的单周期设计加入控制单元 那么我们能够在后续的设计中提供方便 我们也在流水线中加入一个control单元 我们先按照书上的指令op码值介绍一遍基本功能 接下来我们讲述control 的 控制效果 关于这些串口判别的使用 由于控制线从…...

MySQL 通过存储过程高效插入100w条数据

目录 一、前言二、创建表三、编写存储过程插入数据四、高效插入数据方案4.1、插入数据时删除表中全部索引4.2、存储过程中使用统一事务插入&#xff08;性能显著提升&#xff09;4.3、调整MySQL系统配置&#xff08;性能显著提升&#xff0c;适合存储过程没有使用统一事务&…...

国庆10.1

用select实现服务器并发 ser #include <myhead.h> #define ERR_MSG(msg) do{\fprintf(stderr, "__%d__", __LINE__);\perror(msg);\ }while(0)#define PORT 8888 //端口号&#xff0c;范围1024~49151 #define IP "192.168.1.205" //本机…...

[C++_containers]10分钟让你掌握vector

前言 在一个容器的创建或是使用之前&#xff0c;我们应该先明白这个容器的一些特征。 我们可以通过文档来来了解&#xff0c;当然我也会将重要的部分写在下面。 1. vector 是表示可变大小数组的序列容器。 2. 就像数组一样&#xff0c; vector 也采用的连续存储空间来存储元…...

前端与后端:程序中两个不同的领域

前端和后端是构成一个完整的计算机应用系统的两个主要部分。它们分别负责不同的功能和任务&#xff0c;有以下几个方面的区别&#xff1a; 功能&#xff1a;前端主要负责用户界面的呈现和交互&#xff0c;包括网页的设计、布局、样式、动画效果和用户输入等。后端则处理网站或应…...

告别轮询!GD32F407 ADC+DMA+定时器触发,实现多通道自动采集与存储

GD32F407 ADCDMA定时器触发&#xff1a;多通道自动采集系统设计指南 在物联网节点和工业监测设备开发中&#xff0c;高效稳定的数据采集系统是核心基础。传统轮询式ADC采集不仅占用大量CPU资源&#xff0c;还难以满足多通道同步、高精度定时采集的需求。本文将深入讲解基于GD32…...

新手入门:基于快马平台复现pencil设计工具基础功能学前端

最近在学前端开发&#xff0c;想找个能动手实践的项目练练手。朋友推荐了pencil官网的设计工具&#xff0c;但直接看源码有点复杂。后来发现用InsCode(快马)平台可以快速复现基础功能&#xff0c;特别适合新手理解画布操作和事件处理。下面分享我的学习过程&#xff1a; 画布搭…...

FastAPI测试报告集成:CI/CD状态显示完全指南

FastAPI测试报告集成&#xff1a;CI/CD状态显示完全指南 【免费下载链接】fastapi FastAPI framework, high performance, easy to learn, fast to code, ready for production 项目地址: https://gitcode.com/GitHub_Trending/fa/fastapi FastAPI作为一款高性能、易学习…...

终极指南:如何将Squire富文本编辑器与现代前端工具链完美集成

终极指南&#xff1a;如何将Squire富文本编辑器与现代前端工具链完美集成 【免费下载链接】Squire The rich text editor for arbitrary HTML. 项目地址: https://gitcode.com/gh_mirrors/sq/Squire Squire是一个轻量级、高性能的HTML5富文本编辑器&#xff0c;专为处理…...

鼎捷T100——快速构建简易报表:azzi310与azzi910的高效协作

1. 从零开始&#xff1a;理解鼎捷T100报表开发的核心模块 第一次接触鼎捷T100系统时&#xff0c;我被各种功能模块搞得晕头转向。直到真正用azzi310和azzi910协作完成报表开发&#xff0c;才发现这套组合拳的妙处。简单来说&#xff0c;azzi310就像你的SQL编辑器报表设计器&…...

讲透RenderTarget · 第一章:RenderTarget 是什么

**欢迎新朋友点赞、关注、收藏三连。第一章&#xff1a;RenderTarget 是什么一句话概括&#xff1a; RenderTarget 就是 GPU 的"画布"——不一定画在屏幕上&#xff0c;可以画在任何一块显存里。⏱ 30 秒概览RenderTarget&#xff08;RT&#xff09; GPU 可以写入像素…...

Janus-Pro-7B开发者案例:基于7860 Web UI构建内部AI知识助手

Janus-Pro-7B开发者案例&#xff1a;基于7860 Web UI构建内部AI知识助手 1. 项目背景与价值 企业内部知识管理一直是个头疼的问题。各种文档、图片、报告散落在不同系统中&#xff0c;员工想要快速找到需要的信息往往需要花费大量时间。传统的搜索工具只能基于文字匹配&#…...

OpenCode效果实测:基于Qwen3-4B的代码生成质量与速度展示

OpenCode效果实测&#xff1a;基于Qwen3-4B的代码生成质量与速度展示 1. 项目概览与技术背景 OpenCode是2024年开源的AI编程助手框架&#xff0c;采用Go语言开发&#xff0c;主打"终端优先、多模型、隐私安全"的设计理念。该项目将大语言模型(LLM)包装成可插拔的Ag…...

GLM-4.7-Flash效果展示:中文诗歌格律检测+不合格处自动标注与修改建议

GLM-4.7-Flash效果展示&#xff1a;中文诗歌格律检测不合格处自动标注与修改建议 1. 引言&#xff1a;当AI遇见古典诗词 你有没有想过&#xff0c;让一个AI来当你的诗词老师&#xff1f;不是那种只会背诗的AI&#xff0c;而是能一眼看出你写的诗哪里平仄不对、哪里押韵出错的…...

5分钟搞定RetroArch缩略图:从黑屏到完美游戏封面的全攻略

5分钟搞定RetroArch缩略图&#xff1a;从黑屏到完美游戏封面的全攻略 【免费下载链接】RetroArch Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3. 项目地址: https://gitcode.com/GitHub_Trending/re/RetroArch 还记得打开RetroArch游戏…...