前提:

  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. mysql安装过程及注意事项

    1.1. 下载: 我下载的是64位系统的zip包: 下载地址:https://dev.mysql.com/downloads/mysql/ 下载zip的包: 下载后解压:D:\软件安装包\mysql- ...

  2. django rest_framework 框架的使用

    django 的中间件 csrf Require a present and correct csrfmiddlewaretoken for POST requests that have a CSR ...

  3. 实现PPT在线预览,PPT转图片方案

    一.PPT转图片可行方案探索历程 PPT转图片方案 方案具体步骤及分析 已放弃方案 poi(失真度太高):Aspose直接转图片(收费,效果较好,备选):微软Office Online(需要基于Win ...

  4. httpclient pool帮助类

    摘自爬虫类  用于频繁请求减少网络消耗 import java.io.IOException; import java.io.InterruptedIOException; import java.i ...

  5. python打造文件包含漏洞检测工具

    0x00前言: 做Hack the box的题.感觉那个平台得开个VIp 不然得凉.一天只能重置一次...mmp 做的那题毒药是文件包含漏洞的题,涉及到了某个工具 看的不错就开发了一个. 0x01代码 ...

  6. ubantu环境下fidder安装

    转自:http://www.cnblogs.com/jcli/p/4474332.html Linux(Ubuntu)环境下使用Fiddler 自己的开发环境是Ubuntu, 对于很多优秀的软件但是又 ...

  7. 一次使用 Redis 优化查询性能的实践

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,一次使用 Redis 优化查询性能的实践 应用背景 有一个应用需要上传一组ID到 ...

  8. leetcode814

    class Solution { public: TreeNode* pruneTree(TreeNode* root) { if(root==NULL) { return nullptr; } if ...

  9. delphi Firemonkey ListView 使用参考

    delphi Firemonkey ListView 使用参考 Tokyo版本 http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Customizin ...

  10. VML元素的相关资料

    虽然VML已经过气了,但有时我还不得不使用它,下面是我收集或研究得到的一些东西. 判定一个元素是否为VML元素 function isVML(el) { if (el && el.no ...