jenkins集成Sonar代码分析

本文介绍以docker容器方式启动postgres和sonarqube。

前提条件:
linux系统已具备docker环境,安装jenkins,jenkins已配置好git,jdk,nodejs等。
关闭防火墙(或放行5432、9000端口)

先在jenkins安装SonarQube Scanner插件

登录jenkins,系统管理,插件管理,搜索SonarQube Scanner,安装SonarQube Scanner或者SonarQube Scanner for Jenkins
在这里插入图片描述

1.安装Sonar

演示将postgres和sonarqube安装在10.144.118.57上,登录57机器执行以下步骤。

1.1.下载镜像

docker pull postgres:11.1
docker pull sonarqube:7.4-community

如下图:

在这里插入图片描述

1.2.运行容器

启动postgres

docker run -di --restart=always --name postgres -p 5432:5432 -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=123456 postgres:11.1

启动postgres

docker run -di --restart=always --name sonarqube -p 9000:9000 --link postgres -e SONARQUBE_JDBC_URL=jdbc:postgresql://postgres:5432/sonar -e SONARQUBE_JDBC_USERNAME=sonar -e SONARQUBE_JDBC_PASSWORD=123456 sonarqube:7.4-community

映射SonarQube存储(如果需要)
-v sonarqube_conf:/opt/sonarqube/conf
-v sonarqube_extensions:/opt/sonarqube/extensions
-v sonarqube_logs:/opt/sonarqube/logs
-v sonarqube_data:/opt/sonarqube/data

1.3.查看容器运行状态

docker ps -a

在这里插入图片描述

这里由于patainer已经占用9000端口,临时将9091端口映射到9000。


1.4.登录sonarqube获取Token

浏览器访问 http://10.144.118.57:9091 ,初始使用 admin/admin 登录。

在这里插入图片描述

初始进来没有这两个项目,这是分析代码后效果图。

点击用户头像,选择My Account,输入token名称(名称可随意),点击Generate。

在这里插入图片描述

生成token,并记录,后面jenkin集成Sonarqube Servers要用!

2.jenkins中配置Sonar

2.1.配置全局凭据

登录jenkins

如果手动添加API Token为关闭状态,需要先打开,系统管理->全局安全配置->API Token,勾选【允许用户手动创建一个遗留的 API token】,保存。

点击系统管理,点击Manager Credentials

在这里插入图片描述

点击全局

在这里插入图片描述

添加凭据

在这里插入图片描述

类型:Secret text
范围:全局
Secret:sonarqube中生成的token
ID:自定义
描述:自定义

点击确定。

在这里插入图片描述

2.2.添加Sonarqube Servers

点击系统管理,系统配置

在这里插入图片描述

在SonarQube servers下,勾选Environment variables,点击Add SonarQube

Name:自定义
Server URL:http://10.144.118.57:9091(上面安装的SonarQube地址)
Server authentication token:选择2.1中配置的全局凭据

点击保存。

在这里插入图片描述

3.新建任务,测试sonar分析java后端代码

3.1.新建任务

登录jenkins,新建任务,输入任务名称,选择构建一个自由风格的软件项目,点击OK。

在这里插入图片描述

3.2.配置

源码管理

勾选Git(这里假设jenkins已经集成git,如未集成git,这里没有Git选项,请先集成git后再操作),输入项目git地址,选择用户(这里的用户也是凭据,参照2.1配置全局凭据操作,类型选择Username with password),指定分支,源码库浏览器默认自动;

在这里插入图片描述

构建

点击增加构建步骤,选择Execute SonarQube Scanner

选择jdk,
选择SonarQube Scanner(2.2中添加的),
填写Analysis properties,内容如下:

>sonar.projectKey=ib-gisedit
>sonar.projectName=ib-gisedit
>sonar.language=java
>sonar.sourceEncoding=UTF-8
>sonar.sources=$WORKSPACE/ib-gisedit/src
>sonar.java.binaries=$WORKSPACE

在这里插入图片描述

点击保存

3.3.测试代码分析

点击立即构建,即可构建项目执行代码分析,登录sonarqube界面,点击Projects即可看到分析结果,分析内容含义请自行查阅资料。

在这里插入图片描述

4.新建任务,测试sonar分析前端代码

测试sonar分析前端代码需要jenkins配置nodejs

这里以前端项目nari-globe为例,前端新建任务的步骤和测试分析java后端代码的步骤基本一致,区别在构建填写Analysis properties时

在这里插入图片描述

Analysis properties内容如下:

sonar.projectKey=nari-globe
sonar.projectName=nari-globe
sonar.sourceEncoding=UTF-8
sonar.exclusions=**/*.png,**/*.svg,**/*.md,**/*.eot,**/*.ttf,**/*.jpg,**/*.md,**/*.json
sonar.sources=$WORKSPACE

选择前端项目,执行3.3.测试代码分析,分析前端代码,登录sonarqube界面查看分析结果。

完结!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值