前提:

  Jenkins

  JDK

目录:

1、安装sonar插件:SonarQube Scanner for Jenkins

2、安装SonarQube

3、安装sonar-scanner

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

1.安装sonar插件:SonarQube Scanner for Jenkins

  

2、安装SonarQube

  2.1 下载

    下载地址:https://www.sonarqube.org/downloads/

  2.2 解压

    下载后放在/usr/local目录下,并解压

unzip sonarqube-6.7..zip

  2.3 配置环境变量

vi /etc/profile

  里面写如下

#set sonarqube
export SONAR_HOME=/usr/local/sonarqube-6.7.
PATH=$PATH:$SONAR_HOME/bin

  使配置生效

source /etc/profile

  2.4 启动并测试

    进入到启动目录

/usr/local/sonarqube-6.7./bin/linux-x86-

    执行启动命令

./sonar.sh start

    启动时要查看es.log和sonar.log日志 

tail -f /usr/local/sonarqube-6.7./logs/es.log    
tail -f /usr/local/sonarqube-6.7./logs/sonar.log   

    用root启动会报错,请参考我的另一篇文章:https://www.cnblogs.com/gcgc/p/10239590.html

    所有问题解决完后启动,并测试,访问ip+port,OK了

    我这里是因为默认的9000端口被占用了,所以修改了默认端口 vi /usr/local/sonarqube-6.7.6/conf/sonar.properties

3、安装sonar-scanner

  3.1 下载

    https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner

  3.2 解压

    下载后放在/usr/local目录下,并解压

unzip sonar-scanner-cli-3.2.0.1227-linux.zip

  3.3 配置环境变量

    和上面一样修改/etc/profile文件

#set sonarqube
export SONAR_HOME=/usr/local/sonarqube-6.7.
export SONAR_SCANNER_HOME=/usr/local/sonar-scanner-3.2.0.1227-linux
PATH=$PATH:$SONAR_HOME/bin:$SONAR_SCANNER_HOME/bin

  3.4 测试

    进入/usr/local/sonar-scanner-3.2.0.1227-linux/bin执行:

./sonar-scanner -h

    如果出现如下就说明安装好了

[root@iZbp1bb2egi7w0ueys548qZ bin]# ./sonar-scanner -h
INFO:
INFO: usage: sonar-scanner [options]
INFO:
INFO: Options:
INFO: -D,--define <arg> Define property
INFO: -h,--help Display help information
INFO: -v,--version Display version information
INFO: -X,--debug Produce execution debug output

4、在Jenkins中配置sonar

  SonarScanner和SonarQube的关系类似于客户端与服务端,由于SonarScanner工具需要把扫描的代码及结果发送到SonarQube服务器上,所以需要配置SonarQube服务地址。

  在Jenkins系统配置>>系统设中配置如下:

  

5、在Jenkins中配置sonar-scanner

  在全局工具配置中配置如下:

  

6、在项目根目录下新建sonar-project.properties文件

  内容如下

# must be unique in a given SonarQube instance
sonar.projectKey=cynomys:0.0.
# this is the name and version displayed in the SonarQube UI. Was mandatory prior to SonarQube 6.1.
sonar.projectName=cynomys
sonar.projectVersion=0.0. # Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# This property is optional if sonar.modules is set.
sonar.sources=.
sonar.exclusions=**/test/**,**/target/** sonar.java.source=1.8
sonar.java.target=1.8 # Encoding of the source code. Default is default system encoding
sonar.sourceEncoding=UTF-8
# 最新版本的sonarQube6.5只能扫描class文件,需要指定classes文件路径
sonar.java.binaries=/root/.jenkins/workspace/e-content/e-content-controller/target/classes

7、编写pipeline脚本

  

node {
maven_home='/usr/local/apache-maven-3.5.4' stage('Pull Code'){ git branch: 'master', credentialsId: 'gitlab_account', url: 'http://*****.git' } stage('Code Check') {
echo "代码检查!"
} stage('SonarQube analysis') {
// SonarQubeServer为系统配置的SonarQube servers的名称
withSonarQubeEnv('SonarQubeServer') {
sh '/usr/local/sonar-scanner-3.2.0.1227-linux/bin/sonar-scanner' }
} stage('Unit Test') {
echo "单元测试 !"
} stage('Compile') {
echo '编译开始'
// 暂时打包报错
sh "'$maven_home'/bin/mvn install"
} stage('Build Images') {
echo '敬请期待!' } stage('Backup'){
echo '旧版本软件包已经备份'
} stage('Delete Old war'){
echo "删除老的包"
} stage('Deploy'){
echo '部署!'
sh 'echo hello'
// sh 'scp /root/.jenkins/workspace/e-trade/e-trade-mapper/target/e-trade-mapper-1.0-SNAPSHOT.jar root@10.132.131.51:/home/guchen_test' } stage('Integration Testing') {
echo "敬请期待!"
} stage('UI Automated Testing') {
echo "敬请期待!"
} stage('Send Testing Report') {
echo "敬请期待!"
} }

8、构建一下

  

Jenkins Pipeline+sonar构建质量平台的更多相关文章

  1. Jenkins+pipeline+参数构建+人工干预确定

    Jenkins+pipeline+参数构建+人工干预 实现了以下功能 1. 可以选择环境,单选:可以选择需要发布的项目,多选 2.发布过程可视化 3. 可以人工干预是否继续发布. 初始化配置需要很久, ...

  2. 使用Jenkins pipeline流水线构建docker镜像和发布

    新建一个pipeline job 选择Pipeline任务,然后进入配置页面. 对于Pipeline, Definition选择 "Pipeline script from SCM" ...

  3. Jenkins 集成Sonar代码质量扫描

    Jenkins上安装插件 在jenkins插件安装界面安装: 插件名 SonarQube Scanner for Jenkins Jenkins上配置 jenkins中操作:系统管理-系统设置,找到 ...

  4. Jenkins Pipeline Job构建配置

    ​ ​ ​ ​​ 1.创建pipeline job任务,新建任务>输入任务名称>选择“流水线”>点击[确定] ​ 添加描述,This is my first test pipelin ...

  5. Jenkins + Pipeline 构建流水线发布

      Jenkins + Pipeline 构建流水线发布 利用Jenkins的Pipeline配置发布流水线 参考: https://jenkins.io/doc/pipeline/tour/depl ...

  6. 基于Kubernetes构建企业Jenkins master/slave CI/CD平台

    搭建平台目的: k8s中搭建jenkins master/slave架构,解决单jenkins执行效率低,资源不足等问题(jenkins master 调度任务到 slave上,并发执行任务,提升任务 ...

  7. jenkins pipeline构建后发送邮件通知

    jenkins pipeline构建后发送邮件通知 mail配置 进入系统配置 找到最下边的邮件通知 创建任务 Pipeline片段 post { always { bat "" ...

  8. jenkins pipeline构建后返回构建结果给gitlab

    jenkins pipeline构建后返回构建结果给gitlab 使用场景 gitlab 合并请求时要求管道任务必须成功,否则无法执行合并操作,又不想使用gitlab ci 工具. 实现方法 1.Ge ...

  9. jenkins pipeline构建项目

    以前用的jenkins自由风格发布代码.界面丑陋,出现问题位置不够清晰.今天改进一下流程使用jenkins pipeline构建项目. 学习使我快乐 步骤一.安装pipeline插件 点击系统管理-& ...

随机推荐

  1. Introduction to Spring Data MongoDB

    Introduction to Spring Data MongoDB I just announced the new Spring 5 modules in REST With Spring: & ...

  2. django-redis缓存

    1.安装django依赖包 pip install djange-redis==4.8.0 2.配置文件settings  需要开启redis服务 sudo service redis start,否 ...

  3. 好记性不如烂笔头-linux学习笔记4apache相关知识

    apache 启动有2种模式 1是prefork模式,每个进程对应一个线程,如果是比较稳定的平台,那么prefork模式是worker模式 比较好,效率高,但是吃的内存比较大. 2 如果是高负载高并发 ...

  4. Django的学习之路

    Django基础 Django框架基础 http协议及web框架 Django-2的路由层(URLconf) Django的视图层 Django框架之第三篇模板语法(重要!!!) Django框架之模 ...

  5. 「小程序JAVA实战」小程序数据缓存API(54)

    转自:https://idig8.com/2018/09/22/xiaochengxujavashizhanxiaochengxushujuhuancunapi52/ 刚开始写小程序的时候,用户信息我 ...

  6. 2.ehcache.xml简介

    转自:https://www.cnblogs.com/crazylqy/p/4238148.html ehcache.xml文件是用来定义Ehcache的配置信息的,更准确的来说它是定义CacheMa ...

  7. 利用MemoryAnalyzer进行OutOfMemoryError的诊断分析

    这篇帖子只介绍利用MemoryAnalyzer进行简单的JVM的堆的分析,至于JVM的内部结构是怎么样的,这里不进行分析.好吧,废话不多说:首先如果我们要分析JVM某个时刻的Heap的对象分配情况,我 ...

  8. Creating Self-Signed SSL Certificates

    http://weblogic-wonders.com/weblogic/2011/05/25/ssl-configuration-for-weblogic-server/ http://m-butt ...

  9. 检测IE浏览器版本是否过低

    <script type="text/javascript"> /*判断浏览器版本是否过低*/ $(document).ready(function() {s var ...

  10. 值得推荐的开源C/C++框架和库

    值得学习的C语言开源项目   - 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工 ...