mv网站源码分享(专业的mv网站)

大家好,今天小编来为大家解答以下的问题,关于mv网站源码分享,专业的mv网站这个很多人还不知道,现在让我们一起来看看吧!

Skywalking作为一款优秀的开源APM监控系统,对于性能监控帮助挺大,2020年开始我们自己就对这个开源的系统做了些改动和本地化的开发,改完后就会涉及到编译打包,现在我们从网上找到挺多这方面的文章,但是我那时候很少能搜到,所以当时摸索过程中踩了很多坑。现在我重新整理一下这方面的思路,并且做些简化,也参考了别人的方法:

基础环境:

jdk:1.8maven:maven3git:版本随意

IDE:intelliJIDEA(依个人习惯,我编译打包有时候根本没用到IDE,毕竟挺占内存的)

另外不要用VPN翻墙,很多人以为翻墙会下载很快,但可能会导致编译失败。

构建项目:

本次构建的是Skywalking的master分支,本篇文章演示的是当时的Skywalking8.1.0版,对于现在的新版本如8.9.1也适用(毕竟核心模块还是那些)。

1.clone代码

gitclonehttps://github.com/apache/skywalking.git(1)问题:clone代码失败,github在国外,连接太慢了。

解决方法:

一是配置加速器,通过改hosts文件;

34;apm-protocol/apm-network/src/main/proto&34;oap-server/server-query-plugin/query-graphql-plugin/src/main/resources/query-protocol&34;skywalking-ui&34;test/e2e/e2e-protocol/src/main/proto&IDEA打开Terminal执行,或是进入到skywalking目录下执行\nwindows下执行\nmvnwcleanpackage-DskipTests\n\n编译agent包\n./mvnwpackage-Pagent,dist\n编译UI忽略Tests,并且打完整包\n./mvnwpackage-Pui,dist-DskipTests

这一步执行时间长短和网速有关系,编译全量需要20min~1h,编译一个模块2min~20min,编译到后面看到一个个的SUCCESS就表示成功了。

编译效果图

最后会在dist目录下生成两个安装包:

打包完的文件

把其中一个包解开,就能看到我们所需要的安装启动文件:

常见问题处理:

1.报maven-wrapper.jar错

第一次执行mvnwcleanpackage-DskipTests一般会报以下错误:

这是因为maven-wrapper.jar下载并拷贝到.mvn/wrapper下失败,把链接复制出来,手动去下载吧,下载后把maven-wrapper-x.x.x.jar文件,改名成maven-wrapper.jar,并拷贝到.mvn/wrapper目录下。

2.提示缺少部分类

执行mvnwcleanpackage-DskipTests失败,提示缺少部分类,例如缺少类KeyStringValuePair.java

[ERROR]/Users/terry/Gits/agent/skywalking/skywalking-github/apm-protocol/apm-network/src/main/java/org/apache/skywalking/apm/network/trace/component/command/TraceIgnoreCommand.java:[39,48]找不到符号\n[ERROR]符号:变量KeyStringValuePair\n[ERROR]位置:类org.apache.skywalking.apm.network.trace.component.command.TraceIgnoreCommand\n[ERROR]->[Help1]\n[ERROR]\n[ERROR]Toseethefullstacktraceoftheerrors,re-runMavenwiththe-eswitch.\n[ERROR]Re-runMavenusingthe-Xswitchtoenablefulldebuglogging.\n[ERROR]\n[ERROR]Formoreinformationabouttheerrorsandpossiblesolutions,pleasereadthefollowingarticles:\n[ERROR][Help1]http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException\n[ERROR]\n[ERROR]Aftercorrectingtheproblems,youcanresumethebuildwiththecommand\n[ERROR]mvn<goals>-rf:apm-network

缺类的情况很常见,原因是因为前面提到的gitsubmoduleupdate没有更新到submodule,解决方法就是看报的哪个模块,比如这是报的apm-protocol/apm-network,到.gitmodules中找到对应模块源码的路径:

删除对应的目录,重新gitsubmoduleupdate,或者按前面说的方法,手动去下载源码吧。

3.npminstall报错:

[ERROR]Failedtoexecutegoalcom.github.eirslett:frontend-maven-plugin:1.6:\nnpm(npminstall)onprojectapm-webapp:Failedtoruntask:&39;failed.org.apache.commons.exec.ExecuteException:\nProcessexitedwithanerror:-4048(Exitvalue:-4048)->[Help1]

碰到这个错,很多人会想到是不是https://registry.npmjs.org/的问题,就想改成国内的https://registry.npm.taobao.org,结果还是报错,其实只要这个网址是通的,就无所谓改成什么。之所以报错,就是前面提到gitsubmoduleupdate,这一步是UI的构建,不成功无非就是UI源码没下载好,或是node.exe没下载好,node的版本是由apm-webapp\\pom.xml决定的:

<configuration>\n<workingDirectory>${ui.path}</workingDirectory>\n<nodeVersion>v8.17.0</nodeVersion>\n</configuration>

最重要的一点,还不是下载的问题,而是在npminstall过程中下载node_modules的插件就出错了,所以UI的构建如果总是不成功,我们也可以独立出来,通过cnpminstall也是可以的,关键是要能将vue.js编译生成dist文件:

独立编译成的UIdist文件,也是可以放到apm-webapp中打包的,可以将上图dist中的文件拷贝到apm-webapp\\target\\classes\\public下,然后修改apm-webapp\\pom.xml,将npminstall和build过程都注释了:

这样就实现了独立构建的skywalking-ui结果文件放到整体包中一起打包(这样就忽略了skywalking-ui在构建时,因为网络原因导致整体打包被中断)。当然你也可以什么也不改,把skywalking-ui目录删除,多构建几次,可能也会成功。或都将上面的pom.xml文件进行修改,不用npm命令,改成用cnpm命令,可能也会成功。

4.protoc调用错误

新版本好像没有这个问题,老版本在初次执行mvnwcleanpackage-DskipTests时会报错如下:

这个错误一般在老版本,如6.6.0,第一次使用时会出现,现在我没发现有(应该已经集成了),如果出现可以按以下方式处理:

下载需要的安装包:ReleaseProtocolBuffersv3.3.0·protocolbuffers/protobuf·GitHub

protoc-3.3.0-win32.zipprotobuf-java-3.3.0.zip

将protoc-3.3.0-win32中的protoc.exe拷贝到c:\\windows\\system32和SysWOW64中将protoc.exe文件拷贝到解压后的protobuf-3.3.0\\src目录中protobuf-3.3.0\\java目录下执行mvnpackage命令编辑该包生成protobuf-java-3.3.0.jar文件(这一步相当于安装了)

差不多就是这些了,如果遇到新的问题,应该也是可以归到以上几类(至少问题的原理是一样的)。一般我们是不推荐自己构建skywalking,毕竟官网一直在更新安装包,已经能满足大部分人的使用。

mv网站源码分享的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于专业的mv网站、mv网站源码分享的信息别忘了在本站进行查找哦。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平