Jenkins Pipeline+sonar构建质量平台
前提:
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构建质量平台的更多相关文章
- Jenkins+pipeline+参数构建+人工干预确定
Jenkins+pipeline+参数构建+人工干预 实现了以下功能 1. 可以选择环境,单选:可以选择需要发布的项目,多选 2.发布过程可视化 3. 可以人工干预是否继续发布. 初始化配置需要很久, ...
- 使用Jenkins pipeline流水线构建docker镜像和发布
新建一个pipeline job 选择Pipeline任务,然后进入配置页面. 对于Pipeline, Definition选择 "Pipeline script from SCM" ...
- Jenkins 集成Sonar代码质量扫描
Jenkins上安装插件 在jenkins插件安装界面安装: 插件名 SonarQube Scanner for Jenkins Jenkins上配置 jenkins中操作:系统管理-系统设置,找到 ...
- Jenkins Pipeline Job构建配置
1.创建pipeline job任务,新建任务>输入任务名称>选择“流水线”>点击[确定] 添加描述,This is my first test pipelin ...
- Jenkins + Pipeline 构建流水线发布
Jenkins + Pipeline 构建流水线发布 利用Jenkins的Pipeline配置发布流水线 参考: https://jenkins.io/doc/pipeline/tour/depl ...
- 基于Kubernetes构建企业Jenkins master/slave CI/CD平台
搭建平台目的: k8s中搭建jenkins master/slave架构,解决单jenkins执行效率低,资源不足等问题(jenkins master 调度任务到 slave上,并发执行任务,提升任务 ...
- jenkins pipeline构建后发送邮件通知
jenkins pipeline构建后发送邮件通知 mail配置 进入系统配置 找到最下边的邮件通知 创建任务 Pipeline片段 post { always { bat "" ...
- jenkins pipeline构建后返回构建结果给gitlab
jenkins pipeline构建后返回构建结果给gitlab 使用场景 gitlab 合并请求时要求管道任务必须成功,否则无法执行合并操作,又不想使用gitlab ci 工具. 实现方法 1.Ge ...
- jenkins pipeline构建项目
以前用的jenkins自由风格发布代码.界面丑陋,出现问题位置不够清晰.今天改进一下流程使用jenkins pipeline构建项目. 学习使我快乐 步骤一.安装pipeline插件 点击系统管理-& ...
随机推荐
- application/json 和 application/x-www-form-urlencoded的区别
public static string HttpPost(string url, string body) { //ServicePointManager.ServerCertificateVali ...
- 软件测试——Peer Review
一.什么是peer review peer review是一种通过作者的同行来确认缺陷和需要变更区域的检查方法.需要进行同行评审的特定产品在定义项目软件过程的时候被确定并且作为软件开发计划的一部分被安 ...
- leetcode26
public class Solution { public int RemoveDuplicates(int[] nums) { var len = nums.Length; ) { ; } els ...
- Android 获取图片转bitmap
1. Resources resources = mContext.getResources(); Drawable drawable = resources.getDrawable(R.drawab ...
- TCP接入层的负载均衡、高可用、扩展性架构
一.web-server的负载均衡 互联网架构中,web-server接入一般使用nginx来做反向代理,实施负载均衡.整个架构分三层: 上游调用层,一般是browser或者APP 中间反向代理层,n ...
- MyBatis 提供的内置类型别名
- Linux学习---新建文件,查看文件,修改权限,删除
过程:在一个文件夹下面新建一个文件,然后查看文件,再修改权限,运行,最后删除 1.新建文件: touch Test.sh 补充:新建文件有好多种方式,一般用mkdir(创建目录,即文件夹).touc ...
- springmvc web.xml配置之 -- ContextLoaderListener
首先回归一下web.xml的常用配置,看一个示例: <context-param> <param-name>contextConfigLocation</param-na ...
- git的基本命令
在当前目录新建一个git代码库$ git init 设置提交代码时的用户信息:$ git config [--global] user.name "[name]"$ git con ...
- for 续8
---------siwuxie095 一个问题分析: 在 CMD 窗口输入: dir dir /b dir /b /ah dir C:\Windows dir C:\ ...