Jenkins项目构建类型(纯小白使用教程4)

Jenkins项目构建类型(纯小白使用教程4)


Jenkins项目构建类型(纯小白使用教程3)

配置邮箱服务器发送构建结果

  1. Jenkins设置邮箱相关参数
    Manage Jenkins->Configure System
    在这里插入图片描述
  2. 设置Jenkins默认邮箱信息
    在这里插入图片描述
  3. 准备邮件内容
    在项目根目录编写email.html,并把文件推送到Gitlab,内容如下:(全部复制就行)
    在这里插入图片描述
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>
</head>

<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"
      offset="0">
<table width="95%" cellpadding="0" cellspacing="0"
       style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
    <tr>
        <td>(本邮件是程序自动下发的,请勿回复!)</td>
    </tr>
    <tr>
        <td><h2>
            <font color="#0000FF">构建结果 - ${BUILD_STATUS}</font>
        </h2></td>
    </tr>
    <tr>
        <td><br />
            <b><font color="#0B610B">构建信息</font></b>
            <hr size="2" width="100%" align="center" /></td>
    </tr>
    <tr>
        <td>
            <ul>
                <li>项目名称&nbsp;&nbsp;${PROJECT_NAME}</li>
                <li>构建编号&nbsp;&nbsp;第${BUILD_NUMBER}次构建</li>
                <li>触发原因:&nbsp;${CAUSE}</li>
                <li>构建日志:&nbsp;<a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
                <li>构建&nbsp;&nbsp;Url&nbsp;&nbsp;<a href="${BUILD_URL}">${BUILD_URL}</a></li>
                <li>工作目录&nbsp;&nbsp;<a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>
                <li>项目&nbsp;&nbsp;Url&nbsp;&nbsp;<a href="${PROJECT_URL}">${PROJECT_URL}</a></li>
            </ul>
        </td>
    </tr>
    <tr>
        <td><b><font color="#0B610B">Changes Since Last
            Successful Build:</font></b>
            <hr size="2" width="100%" align="center" /></td>
    </tr>
    <tr>
        <td>
            <ul>
                <li>历史变更记录 : <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a></li>
            </ul> ${CHANGES_SINCE_LAST_SUCCESS,reverse=true, format="Changes for Build #%n:<br />%c<br />",showPaths=true,changesFormat="<pre>[%a]<br />%m</pre>",pathFormat="&nbsp;&nbsp;&nbsp;&nbsp;%p"}
        </td>
    </tr>
    <tr>
        <td><b>Failed Test Results</b>
            <hr size="2" width="100%" align="center" /></td>
    </tr>
    <tr>
        <td><pre
                style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">$FAILED_TESTS</pre>
            <br /></td>
    </tr>
    <tr>
        <td><b><font color="#0B610B">构建日志 (最后 100行):</font></b>
            <hr size="2" width="100%" align="center" /></td>
    </tr>
    <tr>
        <td><textarea cols="80" rows="30" readonly="readonly"
                      style="font-family: Courier New">${BUILD_LOG, maxLines=100}</textarea>
        </td>
    </tr>
</table>
</body>
</html>
  1. 编写Jenkinsfile添加构建后发送邮件
   pipeline { 
      agent any 
      stages { 
         stage('拉取代码') { 
            steps {
               checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '68f2087f-a034-4d39-a9ff-1f776dd3dfa8', url: 'git@192.168.66.100:itheima_group/web_demo.git']]])
                } 
         }
        stage('编译构建') { 
            steps { 
                sh label: '', script: 'mvn clean package'
                 } 
         }
        stage('项目部署') { 
            steps {
               deploy adapters: [tomcat8(credentialsId: 'afc43e5e-4a4e-4de6-984f- b1d5a254e434', path: '', url: 'http://192.168.66.102:8080')], contextPath: null, war: 'target/*.war'
             }
        }
   }

   post { 
      always { 
           emailext(
             subject: '构建通知:${PROJECT_NAME} - Build # ${BUILD_NUMBER} - ${BUILD_STATUS}!',
             body: '${FILE,path="email.html"}',
             to: 'xxx@qq.com'
             )
           }
      }
  }

  1. 测试
    在这里插入图片描述
    PS:邮件相关全局参数参考列表:
    系统设置->Extended E-mail Notification->Content Token Reference,点击旁边的?号
    在这里插入图片描述

安装SonarQube(1)

SonaQube简介
SonarQube是一个用于管理代码质量的开放平台,可以快速的定位代码中潜在的或者明显的错误。目前支持java,C#,C/C++,Python,PL/SQL,Cobol,
JavaScrip,Groovy等二十几种编程语言的代码质量管理与检测 (用的是es来检索的)

在这里插入图片描述

官网

  1. 软件版本
软件服务器软件版本
JDK192.168.66.1011.8
Mysql192.168.66.1015.7
SonarQube192.168.66.1016.7.4
  1. 安装SonarQube
    1)安装MySQL(已完成)
    2)安装SonarQube
    在MySQL创建sonar数据库
    yum install unzip
  2. 下载sonar压缩包:
    https://www.sonarqube.org/downloads/
  3. 解压sonar,并设置权限
  unzip sonarqube-6.7.4.zip         解压
  mkdir /opt/sonar                  创建目录
  mv sonarqube-6.7.4/* /opt/sonar   移动文件
  useradd sonar                     创建sonar用户,必须sonar用于启动,否则报错
  chown -R sonar. /opt/sonar        更改sonar目录及文件权限
  1. 修改sonar配置文件
  vim /opt/sonar/conf/sonar.properties
  内容如下:
  sonar.jdbc.username=root sonar.jdbc.password=Root@123
  sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?
useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=
maxPerformance&useSSL=false

注意:sonar默认监听9000端口,如果9000端口被占用,需要更改

在这里插入图片描述

  1. 启动sonar 一定要用sonar用户启动
    
    su sonar  /opt/sonar/bin/linux-x86-64/sonar.sh start  启动
    su sonar ./bin/linux-x86-64/sonar.sh status           查看状态
    su sonar ./bin/linux-x86-64/sonar.sh stop             停止
    tail -f logs/sonar.logs                           查看日志 在sonar目录下
  1. 访问sonar
    http://XXXXXX:9000/about
    在这里插入图片描述
  2. 登录–默认账户:admin/admin
    在这里插入图片描述
    在这里插入图片描述

代码审查SonarQube(2)

在这里插入图片描述

Jenkins安装SonarQube Scanner插件

在这里插入图片描述

配置SonarQube凭证

  1. 系统管理-系统设置-全局工具配置
    在这里插入图片描述

添加SonarQube凭证

  1. 系统管理-系统设置-系统配置
    在这里插入图片描述
  2. 如果添加凭证不了,可以去凭证配置里配置
    在这里插入图片描述
  3. 重新操作即可

配置项目构建环境

非流水线项目

在这里插入图片描述
在这里插入图片描述

# must be unique in a given SonarQube instance 
# 检测标记 标记唯一!
sonar.projectKey=web_demo 
# this is the name and version displayed in the SonarQube UI. Was mandatory prior to SonarQube 6.1. 
# 检测标记 标记唯一!
sonar.projectName=web_demo 
#版本号
sonar.projectVersion=1.0 
# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows. 
# This property is optional if sonar.modules is set. 

# 代码路径 。当前根目录扫描 ,也可以扫描 /src/main目录
sonar.sources=.
# 排序一些元素不扫描
sonar.exclusions=**/test/**,**/target/** 
#jdk版本
sonar.java.source=1.8 
sonar.java.target=1.8 

# Encoding of the source code. Default is default system encoding 
#编码格式
sonar.sourceEncoding=UTF-8 
  1. 点击保存,重新构建项目
    在这里插入图片描述
  2. 之后我们访问sonar项目
    在这里插入图片描述
  • Bugs 比较明显的bug
  • Code Smells 代码不稳定的因素
  • Coverage 代码测试覆盖范围
  • Duplications 冗余代码
流水线项目
  1. 项目新增 sonar-project.properties 配置文件
# must be unique in a given SonarQube instance
sonar.projectKey=web_demo_pipline
# this is the name and version displayed in the SonarQube UI. Was mandatory prior to SonarQube 6.1.
sonar.projectName=web_demo_pipline
sonar.projectVersion=1.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

  1. Jenkins 配置文件新增步骤
    在这里插入图片描述
     
    stage('sonar code'){
        steps{
           script {
           // 引入sonar 工具  Jenkins系统管理-全局工具配置
              scannerHome = tool 'sonar-scanner'
           }
           //    Jenkins系统管理-系统配置
           withSonarQubeEnv('sonarqube') {
               sh "${scannerHome}/bin/sonar-scanner"
            }
        }

    }
  1. 重新上传项目,查看sanor
    在这里插入图片描述

Jenkins本小结结束

Jenkins+Docker+SpringCloud微服务持续集成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值