美文网首页
SonarQube的windows版安装

SonarQube的windows版安装

作者: david161 | 来源:发表于2022-04-03 09:28 被阅读0次

在我们上线代码前,一般需要在我们本地做扫描,所以我们通常会在本地安装一个Windows的版本先做扫描,然后上传代码,最后由公司的SonarQube做一次统一的检测,然后再上线代码。

sonarqube目录

这里简单说下每个目录作用 
1.bin 用来启动 SonarQube 服务,这里已经提供好了不同系统启动 | 停止脚本了,目前提供了 linux-x86-32、linux-x86-64、macosx-universal-64、windows-x86-32、windows-x86- 64
2.conf 用来存放配置文件,若需要修改配置,修改 sonar.properties 文件即可。 
3.data 用来存放数据,SonarQube默认使用 h2 数据库存储,同时支持其他如Orace、Mssql、 Postgresql数据库存储。 
4.extensions 用来存放插件 jar 包,以后我们需要安装插件就放在这里。 
5.lib 用来存放各种所依赖的 jar 包,包括上边各数据库驱动包 (默认已提供一个版本,如果版本不 匹配,则在这里手动更新下)。 
6.logs 用来存放各日志信息 
7.web 用来提供 SonarQube web 网页服务。

安装常见的问题

下载解压完成后,可以启动SonarQube了:


image.png

这里我的本机已经是JDK11的环境了,会提示缺少ES,要求要安装ES。另外还提示了GC设置错误,这里我们可以参照他的提示做相应的配置修改就可以了。


image.png

另外可能常见的错误还有下面这些:

错误信息1
jvm 1 | WrapperSimpleApp: Encountered an error running main: 
java.lang.IllegalStateException: SonarQube requires Java 11+ to run jvm 1 | 
java.lang.IllegalStateException: SonarQube requires Java 11+ to run jvm 1 | 
at org.sonar.application.App.checkJavaVersion(App.java:93) jvm 1 | 
at org.sonar.application.App.start(App.java:56) jvm 1 | 
at org.sonar.application.App.main(App.java:98) jvm 1 | 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) jvm 1 | 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62 )jvm 1 | 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl .java:43) jvm 1 | 
at java.lang.reflect.Method.invoke(Method.java:498) jvm 1 | 
at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:240) jvm 1 | 
at java.lang.Thread.run(Thread.java:748) wrapper | <-- Wrapper Stopped
解决方案

sonarqube7.9 ->必须使用JDK11->不能使用其他JDK版本

更换本机JAVA_HOME变量为JDK11版本。 
大家可以自行测试JDK14是否支持sonarqube7.9.X
错误信息2
app[][o.e.t.n.Netty4Transport] exception caught on transport layer [[id: 0xe5d5a747, L:/127.0.0.1:18558 - R:/127.0.0.1:9001]], closing connection 
io.netty.handler.codec.DecoderException: java.io.StreamCorruptedException: invalid internal transport message format, got (48,54,54,50)
解决方案
1.查看ELK的日志 
%sonarqube_home%/logs/es.log 
发现9001端口被windows系统占用,默认的是9001的端口。

2.打开cmd窗口。输入命令: 
netstat -ano 

3.发现PID=4的进程占用9001端口 
打开任务管理器,找到PID=4的进程。结束进程,发现无法结束进程。 
只能进入sonar.properties里修改ES端口。 

4.更改ELK启动端口为9003 
打开文件: 
%sonarqube_home%/conf/sonar.properties 

更改文件272行左右。去掉注释,更新端口为9003 
sonar.search.port=9003

文件位置示例:


image.png

中文插件

这一步是可选的,如果说英文看着不太习惯的可以考虑下中文插件,注意sonarqube版本和插件包的匹配,这里7.9.6版本的需要下载sonar-l10n-zh-plugin-1.29.jar

https://github.com/SonarQubeCommunity/sonar-l10n-zh

而8.5.x以后的版本sonarqube版本和插件包的版本已经改成对应一致的了,也就是8.9.x的版本中文插件包版本也是8.9,.x,依次类推。

启动访问

安装完成后通过localhost:9000可以访问SonarQube

相关文章

网友评论

      本文标题:SonarQube的windows版安装

      本文链接:https://www.haomeiwen.com/subject/urtzjrtx.html