当前位置: 首页 > news >正文

静态代码扫描持续构建(Jenkins)

前提条件

  1. 已正确安装、配置Jenkins环境,并装有 Gradle 插件、HTML 插件、SVN 插件等。如下图所示:
  2. 已正确安装、配置android sdk,在cmd窗口输入命令“android -h”,回车

配置步骤

  1. 打开Jenkins,新建一个job,输入项目名称,选择“构建一个自由风格的软件项目”
  2. 点击“OK”,将弹出 job 的配置项,General 这一项,主要是简单介绍下本项目,这里只在”项目名称”和”描述”做简单描述,如下图所示:
  3. 源码管理,这里选择的是 SVN,填写的两项是:待测试 app 源码路径、svn 账户密码,剩余项为系统默认,如下图所示:

  4. 构建触发器,这里配置的是:每隔 60 分钟,检查一下代码是否有更新,有更新的话,开始触发静态扫描操作,如下图所示:
  5. 构建环境,这里不做配置
  6. 构建,点击增加构建步骤,选择 “Invoke Gradle script”

    选择 ”Use Gradle Wrapper”,Task 的命令为 “lint”,执行脚本的目录精确到待测试 app 源码目录,gradle 文件为及源码目录下的 build.gradle,其他选项默认配置。如下图所示:
  7. 构建后的操作,这里配置输出 html 测试报告和邮件通知相关人员,点击“增加构建后操作步骤”,选择 ”Publish HTML reports”
    这里主要配置测试报告 html 的所在路径及 html 的主页(lint-result.html),其他项为默项
    接下来是配置邮箱,首先是在 jenkins 全局中对邮箱进行配置,jenkins 主界面点击“系统管理”------“系统设置”,编辑最下方的邮件通知,如图所示: 

    主要填写的信息有,SMTP 服务器、用户名和密码,最后可以选择“通过发送测试邮件测试配置”,填写收件地址,测试配置是否正确。接下来配置 “Editable E-mail Notification” 插件信息,这里主要配置邮箱 SMTP 服务器,其他信息根据不同的项目做不同配置(邮件主题、邮件格式、邮件内容、收件人、触发器等),如下图所示:

    然后,在刚才项目中,点击“增加构建后操作步骤”,选择 “Editable Email Notification”,填写邮件的相关信息,包括:收件人地址、邮件内容格式、邮件内容、附件、是否添加构建日志、触发器等。如下图所示:
    点击右下角的 ”Advanced Settings”,可配置触发器,如下图所示 
    这里的邮件发送触发条件是:静态代码扫描构建成功后,发送测试报告到指定的收件人邮箱,至此静态代码扫描持续集成完成。

相关文章:

静态代码扫描持续构建(Jenkins)

前提条件 已正确安装、配置Jenkins环境,并装有 Gradle 插件、HTML 插件、SVN 插件等。如下图所示: 已正确安装、配置android sdk,在cmd窗口输入命令“android -h”,回车 配置步骤 打开Jenkins,新建一个job,输入项目…...

Git gui教程---汇总篇

想说的 汇总篇就是你应该已经学会基本操作了。剩下的代码上传云端之类的我懒得教了,反正你看命令版也差不多了,具体怎么操作就自己想吧。接下来的汇总篇,主要将每一个篇章对应的git命令写出来,一一对应,毕竟现在的编辑…...

flink sql checkpoint 调优配置

- execution.checkpointing.interval: 检查点之间的时间间隔(以毫秒为单位)。在此间隔内,系统将生成新的检查点 SET execution.checkpointing.interval 6000; - execution.checkpointing.tolerable-failed-checkpoints: 允许的连续失败检查…...

Linux 网络文件共享介绍

Linux 网络文件共享介绍 一.常见的存储类型 目前常见的存储类型有 DAS,NAS,SAN 等,最主要的区别是硬盘存储媒介是如何 于处理器连接的,以及处理器使用何种方式来访问磁盘,以及访问磁盘使用 的协议(网络协议、I/O 协议)。 三种存储类型如下 直…...

Qt中如何在qml文件中使用其他的qml文件并创建对象

如果想使用其他的qml文件直接创建对象,必须先这样导入其qml文件并as成别名,才可以创建对象并使用它。 一、导入qml文件,例如: import "CameraConfig.qml" as CameraConfig import "CameraDevelopView.qml" a…...

学习心得04:CUDA

2018年的时候,看过同事使用CUDA。因为工作忙,所以也没请教。 近来买了本入门的CUDA书,学习了一番。有两个心得: 工作拆分。 CUDA是并行计算,也就是大量重复的可拆分的计算。数组最符合这个要求。简单点就是把数组外面…...

OpenCV实现摄像头图像分类(Python版)

先安装MMEdu库! MMEdu安装:https://blog.csdn.net/zyl_coder/article/details/132483865 下面的代码请在Jupyter上运行,并自己准备数据集。若模型还未训练,请先在本地训练完模型后再进行模型推理。 import cv2 capture cv2.Vi…...

计算机竞赛 地铁大数据客流分析系统 设计与实现

文章目录 1 前言1.1 实现目的 2 数据集2.2 数据集概况2.3 数据字段 3 实现效果3.1 地铁数据整体概况3.2 平均指标3.3 地铁2018年9月开通运营的线路3.4 客流量相关统计3.4.1 线路客流量排行3.4.2 站点客流量排行3.4.3 入站客流排行3.4.4 整体客流随时间变化趋势3.4.5 不同线路客…...

sonarqube报错http status 500-internal server error,什么原因,怎么解决

sonarqube报错http status 500-internal server error,什么原因,怎么解决 答案: SonarQube报错HTTP状态500-内部服务器错误通常是由于服务器端出现了一些问题导致的。这可能是由于配置错误、资源不足、数据库连接问题或其他一些未知的问题引起的。 以下…...

工业设计的四个主要阶段,你都知道吗?优漫动游

一般来说,工业设计有几个基本程序:概念过程——设计创造的意识,即为什么创造。如何使你的想法成为现实,最终形成一个实体;实现过程——在工作消费中创造;行为过程实现其所有价值。在整个设计过程中,设计师需要始终站在…...

【DevOps视频笔记】4.Build 阶段 - Maven安装配置

一、Build 阶段工具 二、Operate阶段工具 三、服务器中安装 四、修改网卡信息 五、安装 jdk 和 maven Stage1 : 安装 JDK Stage 2 : 安装 Maven 2-1 : 更换文件夹名称 2-2 : 替换配置文件 settings.xml- 2-3 : 修改settings.xml详情 A. 修改maven仓库地址 - 阿里云 B…...

linux非GUI模式执行带有jpgc线程组jmeter脚本报错

linux非GUI模式执行jmeter脚本报错 Error in NonGUIDriver java.lang.IllegalArgumentException: Problem loading XML from:/root/fer/xxx.jmx. Cause: CannotResolveClassException: kg.apc.jmeter.vizualizers.CorrectedResultCollectorDetail:com.thoughtworks.xstream.c…...

mysql处理json格式的字段,一文搞懂mysql解析json数据

文章目录 一、概述1、什么是JSON2、MySQL的JSON3、varchar、text、json类型字段的区别 二、JSON类型的创建1、建表指定2、修改字段 三、JSON类型的插入1、字符串直接插入2、JSON_ARRAY()函数插入数组3、JSON_OBJECT()函数插入对象4、JSON_ARRAYAGG()和JSON_OBJECTAGG()将查询结…...

测试数据生成

要生成300亿的文本数据&#xff0c;刚开始用python&#xff0c;实在是太慢了&#xff0c;改成c后速度提升了10几倍&#xff0c;看来干大事还是不能用python。代码留一下&#xff0c;以后可能还可以用上。 #include <stdio.h> #include <stdlib.h> #include <ti…...

网安周报|国防承包商Belcan泄露了带有漏洞列表的管理员密码

1.国防承包商Belcan泄露了带有漏洞列表的管理员密码 网络新闻研究团队发现了一个开放的 Kibana 实例&#xff0c;其中包含有关 Belcan、其员工和内部基础设施的敏感信息。Belcan 是一家政府、国防和航空航天承包商&#xff0c;提供全球设计、软件、制造、供应链、信息技术和数字…...

Vue3语法系统进阶 - 全面掌握Vue3特性

目录 01-ref属性在元素和组件上的分别使用02-利用nextTick监听DOM更新后的情况03-自定义指令与自定义全局属性及应用场景04-复用组件功能之Mixin混入05-插件的概念及插件的实现06-transition动画与过渡的实现07-动态组件与keep-alive组件缓存08-异步组件与Suspense一起使用09-跨…...

第9天----【位运算进阶之----按位取反(~)】(附补码,原码讲解)

今天我们来谈谈按位取反这件事。 简单来说&#xff0c;按位取反就是先将一个数写成其二进制表达形式&#xff0c;然后1变0&#xff0c;0变1。下面就让我们展开深入地讨论吧&#xff01; 文章目录 一、预备知识&#xff1a;1. 原码&#xff1a;定义&#xff1a;优缺点&#xff…...

如何获取当前 JAR 包的存放位置?

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言代码中如何获取打包后的jar包存放的位置&#xff1f; 前言 代码中如何获取打包后的jar包存放的位置&#xff1f; 要获取当前运行的 JAR 包所存放的位置&#…...

微调llama2模型教程:创建自己的Python代码生成器

本文将演示如何使用PEFT、QLoRa和Huggingface对新的lama-2进行微调&#xff0c;生成自己的代码生成器。所以本文将重点展示如何定制自己的llama2&#xff0c;进行快速训练&#xff0c;以完成特定任务。 一些知识点 llama2相比于前一代&#xff0c;令牌数量增加了40%&#xff0…...

Java【手撕双指针】LeetCode 57. “两数之和“, 图文详解思路分析 + 代码

文章目录 前言一、两数之和1, 题目2, 思路分析3, 代码展示 前言 各位读者好, 我是小陈, 这是我的个人主页, 希望我的专栏能够帮助到你: &#x1f4d5; JavaSE基础: 基础语法, 类和对象, 封装继承多态, 接口, 综合小练习图书管理系统等 &#x1f4d7; Java数据结构: 顺序表, 链表…...

WPF颜色转换器实战:如何用ConverterParameter动态切换UI主题色(附完整代码)

WPF颜色转换器实战&#xff1a;如何用ConverterParameter动态切换UI主题色&#xff08;附完整代码&#xff09; 在WPF应用开发中&#xff0c;动态主题切换是提升用户体验的关键功能之一。想象一下&#xff0c;你的应用能够根据用户偏好或系统设置实时切换明暗主题&#xff0c;甚…...

bat批处理命令

一、 什么是 .bat 文件&#xff1f;.bat 文件是一个文本文件&#xff0c;里面包含了一系列 CMD&#xff08;命令提示符&#xff09; 命令。当你双击这个文件时&#xff0c;系统会按顺序逐条执行里面的命令。二、 如何开始&#xff1f;创建文件&#xff1a;新建一个文本文件&…...

GraphRAG大揭秘:微软如何用知识图谱让AI问答更精准,效率翻倍!

微软推出的GraphRAG通过引入知识图谱技术&#xff0c;有效解决了传统RAG在信息连接和归纳总结上的不足。GraphRAG利用大模型构建知识图谱&#xff0c;实现实体和关系的结构化表示&#xff0c;显著提升答案的准确度与完整性&#xff0c;并支持多跳推理。文章详细介绍了知识图谱的…...

开源工具OptiScaler:突破显卡限制的跨平台上采样解决方案

开源工具OptiScaler&#xff1a;突破显卡限制的跨平台上采样解决方案 【免费下载链接】OptiScaler DLSS replacement for AMD/Intel/Nvidia cards with multiple upscalers (XeSS/FSR2/DLSS) 项目地址: https://gitcode.com/GitHub_Trending/op/OptiScaler OptiScaler是…...

终极指南:如何使用Docker Stacks与Git Hooks实现自动化代码质量检查

终极指南&#xff1a;如何使用Docker Stacks与Git Hooks实现自动化代码质量检查 【免费下载链接】docker-stacks Ready-to-run Docker images containing Jupyter applications 项目地址: https://gitcode.com/gh_mirrors/do/docker-stacks Docker Stacks是一个提供现成…...

毫米波雷达信号处理入门:用MATLAB解析DCA1000采集的IWR6843原始数据(附代码)

毫米波雷达信号处理实战&#xff1a;从原始数据到距离谱的MATLAB实现 在自动驾驶和智能感知领域&#xff0c;毫米波雷达因其全天候工作能力和精确的距离测量特性&#xff0c;成为不可或缺的传感器。当开发者完成硬件配置和数据采集后&#xff0c;面对adc_data.bin这样的原始数据…...

2026年程序员必看:AI Agent全面爆发,国产算力突围,这波技术红利别错过

&#x1f525;个人主页&#xff1a;北极的代码&#xff08;欢迎来访&#xff09; &#x1f3ac;作者简介&#xff1a;java后端学习者 ❄️个人专栏&#xff1a;苍穹外卖日记&#xff0c;SSM框架深入&#xff0c;JavaWeb ✨命运的结局尽可永在&#xff0c;不屈的挑战却不可须臾或…...

CK3M多轴运动控制器实战:EtherCAT总线伺服系统从零配置全解析

1. CK3M控制器与EtherCAT系统初识 第一次接触CK3M多轴运动控制器时&#xff0c;我完全被它强大的功能震撼到了。这款控制器就像工业自动化领域的"大脑"&#xff0c;能够同时协调多个伺服电机精准运动。而EtherCAT总线技术则是连接这个大脑与各个执行机构&#xff08;…...

如何快速掌握这款免费音乐歌词工具:3分钟搞定全网歌词批量下载与格式转换

如何快速掌握这款免费音乐歌词工具&#xff1a;3分钟搞定全网歌词批量下载与格式转换 【免费下载链接】163MusicLyrics Windows 云音乐歌词获取【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 在数字音乐时代&#xff0c;你是否遇…...

表格拖拽排序实战:从业务需求到代码落地的全链路指南

表格拖拽排序实战&#xff1a;从业务需求到代码落地的全链路指南 【免费下载链接】ngx-datatable ✨ A feature-rich yet lightweight data-table crafted for Angular 项目地址: https://gitcode.com/gh_mirrors/ng/ngx-datatable 在现代Web应用中&#xff0c;数据表格…...