SonarQube+jenkins(一):Windows(Linux)下安装sonarQube以及配合jenkins分析Maven/Gradle/前端代码

Windows(太长右边有目录)

一、下载SonarQube

下载地址:http://www.sonarqube.org/downloads/
本文下载的版本是sonarqube-8.3最新版。所以需要用jdk11,注意,不同版本对jdk支持不同,看好版本在下。
在这里插入图片描述
一般我们选择下载社区版免费的

二、启动sonarQube

下载完成之后解压,然后进入相应目录下,启动StartSonar.bat
在这里插入图片描述
在这里插入图片描述
看到最后的sonarQube is up表示启动成功
地址栏输入

http://localhost:9000

在这里插入图片描述
表示:SonarQube安装完成,现在还没配置数据库,还不能正式使用。
注意:如果启动失败请关闭任务管理器中的JAVATM的进程,一般有三个

三、数据库配置

1.打开sonarqube安装目录下的conf\sonar.properties文件
输入数据库连接信息
2.如果你是mysql直接按照以下格式替换成自己的数据库就可以,oracle替换成oracle链接

sonar.jdbc.url=jdbc:mysql://ip地址:端口号/数据库名称?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.jdbc.username=root
sonar.jdbc.password=root
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar.password=admin

其中:url是数据库连接地址,username是数据库用户名,jdbc.password是数据库密码,login是sonarqube的登录名,sonar.password是sonarqube的密码

重点:直接这样保存以后启动访问不了,还差一步,要将jdbc的jar包放到D:\sonarqube-8.3.1.34397\extensions\jdbc-driver\oracle下(因为我这里用的oracle,如果是mysql,就是mysql)
在这里插入图片描述
3.再次重启StartSonar.bat,重新访问http://localhost:9000
在这里插入图片描述
4.点击login,登陆sonar账号密码
5.按照下图的点击顺序,进入插件安装页面,搜索框搜索chinese,选择中文包,安装中文插件,安装之后,会自动提醒重启服务,点击重启,重启完之后,刷新,就看到中文版的页面
在这里插入图片描述
注意:如果安装时正常启动,添加数据库后显示远程主机强制关闭注意查看数据库链接是否正确,以及能否访问,有时候一直报错建议先把数据库信息去掉启动登陆再添加

四、项目启动sonar

1.在maven项目的pom.xml中加入以下插件

			<plugin>
               <groupId>org.sonarsource.scanner.maven</groupId>
                <artifactId>sonar-maven-plugin</artifactId>
                <version>3.3.0.603</version>
            </plugin>

然后导入包
2.运行sonar插件
在这里插入图片描述
3.运行成功后在控制台会输出两个地址
在这里插入图片描述
点击第一个地址就可以进入sonar本项目代码分析啦!
在这里插入图片描述

五、SonarQube评判标准

参考链接:https://www.cnblogs.com/zishi/p/6766994.html
该博主摘自官方文档,代码质量标准度量方式

Linux

一、下载sonarQube,如windows第一步

因为它linux和windows下载的压缩包一样,所以直接照windows第一步下载

二、部署过程

1.安装jdk
官方地址:https://www.oracle.com/java/technologies/javase-downloads.html
下载jdk解压放服务器下,至于哪个文件夹,看自己需求

配置JDK环境变量,如下:
vi ~/.bashrc # 也可以在其他文件(/etc/environment等,根据自己需要来。我比较懒,每次都加在bashrc中)中设置环境变量

在bashrc文件中加入如下内容

export JAVA_HOME=/usr/local/jdk1.8.0_251
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$PATH

完成后重新加载配置文件

source ~/.bashrc

检查JDK环境变量配置结果,在命令行中的输入“java -version”命令,正确配置时,输出如下信息:

java -version

如果出现版本信息,安装成功
在这里插入图片描述
2.安装maven
官方地址http://maven.apache.org/download.cgi
同样解压放服务器下,至于哪个文件夹,看自己需求

配置Maven环境变量
vi ~/.bashrc # 继续配置在bashrc文件中,在bashrc文件中加入如下内容

export MAVEN_HOME=/opt/maven/apache-maven-3.2.5
export MAVEN_HOME
export PATH=$PATH:$MAVEN_HOME/bin

配置完成后输入

mvn -version

出现版本信息安装成功
在这里插入图片描述
3.安装mysql(我用的oracle,但是顺道一起编写)
官方下载地址:https://dev.mysql.com/downloads/mysql/

 rpm -ivh mysql-XXX.rpm

变量配置

 cp /usr/share/mysql/my-default.cnf /etc/my.cnf

为了保证代码走查时,能正常上传走查报告,在my.cnf文件中追加如下两项配置:

 max_allowed_packet=256M
    innodb_log_file_size=640M

启动

  /usr/bin/mysql_install_db   # 初始化数据库
    service mysql start  # 启动mysql
    chkconfig –list  # 确认MySQL服务已启动 如果mysql服务后面“345”的值都显示“on”,则启动成功。

开启MySQL远程访问

more /root/.mysql_secret  # 查看默认生成的root临时密码

mysql -uroot -p # 输入上一步的临时密码进入数据库

4.Maven 中配置Sonar(非Maven项目不需要)

 vi /opt/maven/apache-maven-3.2.5/conf/settings.xml  # 编辑setting.xml,在文件中追加sonar节点及其以下内容。
    <settings>
    <pluginGroups>
        <pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
    </pluginGroups>
    <profiles>
        <profile>
            <id>sonar</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <!-- Optional URL to server. Default value is http://localhost:9000 -->
                <sonar.host.url>
                  http://myserver:9000
                </sonar.host.url>
            </properties>
        </profile>
     </profiles>
</settings>

5.启动sonar
将sonar的解压包放到linux服务器下在这里插入图片描述
我这里用的是MobaX远程服务器可以直接将文件拖到左边文件管理中。
进入sonar的安装目录bin下相应的linux系统文件夹
在这里插入图片描述
我这里系统是64位
在这里插入图片描述
查看里面的文件
在这里插入图片描述
我这个地方已经赋过权限,一般刚解压没有赋权限,执行下面指令

chmod a+x sonar.sh wrapper

现在就可以执行了,运行一下命令
在这里插入图片描述
看到sonar启动了,现在访问ip:9000地址
没有问题sonar官方页面会出来,表示安装成功

三、配置数据库

看windows操作的第三部,步骤一样
最后到Maven项目的根目录执行如下命令,即可使用SonarQube分析项目:

mvn sonar:sonar -Dsonar.java.binaries=target/sonar

看到项目构建中,完成后再次访问,可以看到项目分析

补充:sonarQube中文插件安装教程(因为一般只有最新版才有应用市场,有时候为了兼容jdk只能下老版可都是英文)
https://blog.csdn.net/weixin_40816738/article/details/106582827

Maven项目整合Jenkins和SonarQube

一、安装sonarQube

参考windows的第一步(或者Linux)

二、安装jenkins

参考jenkins安装

三、sonarQube集合jenkins

因为我们的项目放在jekins上,所以为了集成,做了一些工作
先在jenkins中安装sonarQube Scanner插件
在这里插入图片描述
然后去插件中心配置jekins地址
在这里插入图片描述
做到这一步的话,第一步很重要,确保sonarQube已经安装并且能够正常访问,以及jenkins访问,且代码中已经添加sonar插件,并且maven的settings.xml中配置好sonarQube

1.打开jenkins,新建maven项目

在这里插入图片描述
点击确认后进入以下页面
在这里插入图片描述
我用的是svn进行项目分支管理,所以选择第三个subversion
Repository URL是分支地址,Credentials是登陆的账号,其它默认就可以,然后往下,在build中输入以下指令
在这里插入图片描述
代表maven启动sonar插件
然后
在这里插入图片描述
应用

2.构建maven项目
点击应用后会跳到构建页面,点击Build Now
在这里插入图片描述

会发现以下的build history会显示一个进度
在这里插入图片描述
(我这个地方第六次正在构建,前五次都失败了所以为红色预警,第六次找到bug问题所在并且解决)等它构建完成
在这里插入图片描述
可以看到为蓝色,构建成功,我们查看控制台输出可以看到sonarQube路径
在这里插入图片描述
链接我打了马赛克,点击进去对代码进行分析

代码分析中的常见问题整理: SonarQube检测出的bug、漏洞以及异味的修复整理

注意:我在maven下载包的地方花了几个小时,因为一直报错:
[ERROR] Plugin org.apache.maven.plugins:maven-clean-plugin:3.0.0 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-clean-plugin:jar:3.0.0: Could not transfer artifact org.apache.maven.plugins:maven-clean-plugin:pom:3.0.0 from/to spring-milestones (https://repo.spring.io/milestone): repo.spring.io: 未知的名称或服务: Unknown host repo.spring.io: 未知的名称或服务 -> [Help 1]
以及错误

[ERROR] No plugin found for prefix 'sonar' in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories [local (/home/m2), spring-milestones (https://repo.spring.io/milestone), alimaven-central (http://maven.aliyun.com/nexus/content/repositories/central/)] -> [Help 1]
之前一直以为是maven的错误,不停的下包和clean,发现都不行,所以百度了几个小时,头都大了。最后试了一下ping百度看网络,发现ping不通,才发现是网络问题,无法拉取jar包

解决方法:linux:ping不通www.baidu.com

Gradle项目整合Jenkins和SonarQube

jekins配置sonarQube插件参考 Maven项目整合Jenkins和SonarQube的第三点

一、Gradle项目整合sonarQube

在build.gradle中加上

buildscript {
    
    
	ext {
    
    
		springBootVersion = '2.0.0.RELEASE'
	}
	repositories {
    
    
		mavenLocal()
		maven {
    
     url "http://maven.aliyun.com/nexus/content/groups/public/" }
		maven {
    
     url "https://repo.spring.io/snapshot" }
		//这个也要加上,是拉取插件的地址
		maven {
    
     url "https://plugins.gradle.org/m2/"}
		mavenCentral()

	}
	dependencies {
    
    
	//重点是这句话,构建时要加在你自己的项目中,不是全部复制粘贴
		classpath("org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.6")
	}
}
//以及这句话
apply plugin: "org.sonarqube"

添加好以后点击build
在这里插入图片描述
成功表示配置成功
在这里插入图片描述
在这里插入图片描述
然后把代码上传到svn或者git(更新代码也可)

二、jenkins配置gradle和sonarQube

1.在 Manage Jenkins的Global Tool Configuration中配置gradle和sonarQube(请确保在服务器或者windows上sonarQube已经安装配置好,并且能够正常访问)
在这里插入图片描述
在这里插入图片描述
2.进入jenkins,新建一个项目,注意,不是maven项目,是freestyle project
在这里插入图片描述
3.新建成功后直接跳到配置页面,上传源码,git就填git,svn选Subversion
在这里插入图片描述
4.在构建中选择gradle
在这里插入图片描述
5.版本选择jenkins里面已经配好的版本,输入构建指令
在这里插入图片描述
6.以上都成功后点击Build Now
在这里插入图片描述
7.查看构建中的项目控制台输出
在这里插入图片描述
8.看到最后一行success成功,直接访问你之前部署好的sonarQube的页面,发现刷新页面之后项目已经进入分析

前端js项目整合Jenkins和SonarQube

1.在jenkins全局工具中设置sonar scanner对项目进行扫描
在这里插入图片描述
2.几乎和前面Gradle项目的新建、配置步骤一样,不同的是配置中的构建
选择
在这里插入图片描述
jdk选择已经配置好的
在这里插入图片描述
properties填写:

sonar.projectKey=//项目名
sonar.projectName=//项目名
sonar.sources=src
sonar.language=js

Sonar.projectKey为全局唯一的key
Sonar.projectName为sonar页面上显示的项目名称
sonar.sources 定义了需要分析的源代码位置
sonar.language 指定了要分析的开发语言(特定的开发语言对应了特定的规则),我这里是js
Sonar.sourceEncoding指定源码的编码

sonar.modules来指定子模块xx
Xx.sonar.projectBaseDir为子模块xx的相对目录
Xx.sonar.java.binaries为子模块编译后 class 文件位置

如果是多个代码一起进行检测
sonar.projectKey=sitbgSonar
sonar.projectName=sitbgSonar
sonar.projectVersion=1.0
sonar.language=java
sonar.java.binaries= W O R K S P A C E / b g − c o r e / t a r g e t / c l a s s e s / , WORKSPACE/bg-core/target/classes/, WORKSPACE/bgcore/target/classes/,WORKSPACE/bg-facade/target/classes/,KaTeX parse error: Expected 'EOF', got '#' at position 43: …sses/ #̲此处是三个项目文件一起进行代码…WORKSPACE/bg-core/src, W O R K S P A C E / b g − f a c a d e / s r c , WORKSPACE/bg-facade/src, WORKSPACE/bgfacade/src,WORKSPACE/bg-web/src #此处是三个项目文件一起进行代码检测

#$WORKSPACE 是jenkins的工作 空间目录

有问题留言

猜你喜欢

转载自blog.csdn.net/weixin_43909848/article/details/106940730