【新手教程】在Jenkins中使用火线插件做静态代码扫描
2017-11-28 16:48
495 查看
火线(Fireline)的Jenkins官方插件已经上线,目前火线不仅能检查出安卓代码中的安全类问题和内存泄露问题,还兼容了阿里开源的Java开发规约(P3C项目),本文将以教程的形式帮助大家了解如何在Jenkins中使用火线插件做静态代码扫描。
1. 前往Jenkins官网进行下载:https://jenkins.io/download/
我下载的2.91版本的.war文件,如下图所示:
这样我们就可以直接使用java命令直接启动Jenkins服务了,如下图:
第一次启动Jenkins服务会下载一些依赖的文件,等待一段时间后,出现如下标红信息说明启动成功:
1. 启动成功后,在浏览器地址栏输入http://localhost:8080/,访问Jenkins页面。
第一次使用会让你解锁Jenkins,在它给定的目录打开“initialAdminPassword”文件,将里面的密码复制粘贴进输入框,点击“Continue”
接下来是让你选择安装默认插件设置,选择左侧的“安装推荐的插件”,进入下载安装插件的进度页面。
安装完成后,会进入一个设置用户名密码等信息的页面:
全部填写完成后(注意!此处如果有漏填项就点击了保存按钮,页面会卡住,此时需要刷新该页面,重新全部填写完成),点击保存按钮。
当出现以下页面,说明Jenkins配置成功!~
在插件页面点击
在过滤栏输入
等待安装成功后,点击
在配置页面的
在“源码管理”栏配置你想扫描的代码,我这里输入的是火线专属测试项目的git地址:
跳过
“构建”栏会出现火线相关的配置,报告路径会有一个默认的地址,不需要输入,默认报告会放在你的个人用户的
保存成功后,在调转后的页面点击
此时页面会看到有一个任务正在执行,点击任务编号,此处为
在此次任务的详情列表点击
打开该目录的
首先我们要安装一个新的插件
回到我们的项目
点击
在
此时还没有完成,因为火线的HTML报告用了JS进行更好的效果展示,我们需要在Jenkins中配置运行执行JS脚本,否则火线报告在Jenkins中的展示会错乱。
前往
此时回到我们的项目
Jenkins中的火线结果报告。火线将比较严重的问题,例如安全类问题列为最高级别
点击
在
写在最后:
非常感谢阿里开源的Java开发规约(P3C项目),在静态代码扫描的代码规范方向,一直以来都没有一个统一的标准,开发人员们对于代码规范的理解和掌握能力参差不齐。在大厂的带头作用下统一化标准化之后,开发人员们更容易去认可静态代码扫描在代码规范方向的检测结果。
同时,火线(Fireline)也一直致力于静态代码扫描方向的研究,我们的主攻点是安卓代码中的安全类问题和内存泄露问题,也是因为这两类问题从开发人员角度来看,是更受关注和重视的。
另外,目前火线除了新上线的Jenkins插件,还有嵌入在开发人员编码IDE中的Android Studio插件,欢迎各位推荐给开发人员使用,让我们可以在全流程中保障代码的质量:开发编写代码环节(Android Studio插件)-> 代码编译打包环节(Jenkins插件)。
Jenkins下载和安装
提示:如果您已经在使用Jenkins,请直接跳转至章节Jenkins安装火线(Fireline)插件。
1. 前往Jenkins官网进行下载:https://jenkins.io/download/
我下载的2.91版本的.war文件,如下图所示:
![这里写图片描述](http://img.blog.csdn.net/20171128164706970?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvb2dnYm95/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
这样我们就可以直接使用java命令直接启动Jenkins服务了,如下图:
第一次启动Jenkins服务会下载一些依赖的文件,等待一段时间后,出现如下标红信息说明启动成功:
Jenkins初始化配置
提示:如果您已经在使用Jenkins,请直接跳转至章节Jenkins安装火线(Fireline)插件。
1. 启动成功后,在浏览器地址栏输入http://localhost:8080/,访问Jenkins页面。
第一次使用会让你解锁Jenkins,在它给定的目录打开“initialAdminPassword”文件,将里面的密码复制粘贴进输入框,点击“Continue”
![这里写图片描述](http://img.blog.csdn.net/20171128162520497?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvb2dnYm95/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
接下来是让你选择安装默认插件设置,选择左侧的“安装推荐的插件”,进入下载安装插件的进度页面。
安装完成后,会进入一个设置用户名密码等信息的页面:
全部填写完成后(注意!此处如果有漏填项就点击了保存按钮,页面会卡住,此时需要刷新该页面,重新全部填写完成),点击保存按钮。
当出现以下页面,说明Jenkins配置成功!~
Jenkins安装火线(Fireline)插件
点击左上角的Jenkinslogo,依次点击
系统管理->
管理插件,
在插件页面点击
可选插件按钮,
在过滤栏输入
fireline,勾选查询出来的
Fireline Plugin插件,点击直接安装。
等待安装成功后,点击
返回首页,开始配置。
Jenkins配置火线
点击创建一个新任务,输入任务名称,选择构建一个自由风格的软件项目,点击确定。
在配置页面的
General栏输入项目名称,我这里输入的
CodeScan。
在“源码管理”栏配置你想扫描的代码,我这里输入的是火线专属测试项目的git地址:
https://github.com/ariesliu/TestCasesProject
跳过
构建触发器和
构建环境配置栏,在
构建栏点击
增加构建步骤,在下拉列表中选择
Execute FireLine选项。
“构建”栏会出现火线相关的配置,报告路径会有一个默认的地址,不需要输入,默认报告会放在你的个人用户的
report目录下,如图所示。配置完成,点击保存按钮。
保存成功后,在调转后的页面点击
立即构建。
此时页面会看到有一个任务正在执行,点击任务编号,此处为
#1。
在此次任务的详情列表点击
Console Output栏,可以看到任务的执行过程。等待任务执行完成后,可以看到火线报告的路径,如下图所示。
打开该目录的
testReport.html,可以看到本次的代码扫描结果。
在Jenkins中直接查看火线扫描结果
在以上所述的配置完成后,我们查看扫描结果报告需要每次自己手动打开文件夹,比较麻烦。我们可以通过一个配置,实现在Jenkins中直接查看火线的扫描结果。首先我们要安装一个新的插件
HTML Publisher plugin,再次去往
系统管理->
管理插件->
可选插件,搜索
HTML Publisher plugin,点击直接安装,安装成功后返回。
回到我们的项目
CodeScan进行配置,这次只需要配置
构建后操作栏,点击
增加构建后操作步骤下拉框,选择
Publish HTML reports选项。
点击
增加按钮。
在
HTML directory to archive栏输入火线报告的生成路径,即在
构建栏中火线默认的结果报告路径,复制过来即可。在
Index page[s]栏输入
testReport.html,这是火线默认生成的HTML报告的名称。这两项配置完成后点击保存。
此时还没有完成,因为火线的HTML报告用了JS进行更好的效果展示,我们需要在Jenkins中配置运行执行JS脚本,否则火线报告在Jenkins中的展示会错乱。
前往
系统管理->
脚本命令行,在文本框中输入
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")这行代码,点击右下角的
运行按钮。
此时回到我们的项目
CodeScan,点击
立即构建,构建完成后就可以点击
HTML Report栏直接查看火线报告了。
Jenkins中的火线结果报告。火线将比较严重的问题,例如安全类问题列为最高级别
Block级别 ,内存泄露问题列为
风险级别,代码规范类问题(阿里Java规约)列为
警告和
优化级别。更多级别详情可参考火线官网的规则文档。
点击
问题详情列表栏,可以看到问题的详情。点击每一行最右侧的
加号图标,可以看到错误的代码片段。
在
Search栏输入
p3c关键字,可以过滤出所有阿里巴巴开发手册(P3C)的规则发现的问题。
写在最后:
非常感谢阿里开源的Java开发规约(P3C项目),在静态代码扫描的代码规范方向,一直以来都没有一个统一的标准,开发人员们对于代码规范的理解和掌握能力参差不齐。在大厂的带头作用下统一化标准化之后,开发人员们更容易去认可静态代码扫描在代码规范方向的检测结果。
同时,火线(Fireline)也一直致力于静态代码扫描方向的研究,我们的主攻点是安卓代码中的安全类问题和内存泄露问题,也是因为这两类问题从开发人员角度来看,是更受关注和重视的。
另外,目前火线除了新上线的Jenkins插件,还有嵌入在开发人员编码IDE中的Android Studio插件,欢迎各位推荐给开发人员使用,让我们可以在全流程中保障代码的质量:开发编写代码环节(Android Studio插件)-> 代码编译打包环节(Jenkins插件)。
相关文章推荐
- Jenkins中使用火线进行Android静态代码扫描
- Jenkins的部署及使用教程(插件集成sonar服务,构建过程做代码分析)
- Findbug插件静态java代码扫描工具使用
- 静态代码扫描之阿里java代码规范IDEA插件
- dede代码编辑器,插入代码并高亮显示代码插件安装使用教程
- 减少你的重复代码-lombok使用教程-idea集成插件
- Jenkins使用教程之用户权限管理(包含插件的安装)
- Java静态代码分析工具——FindBugs插件的安装与使用
- 代码缺陷静态分析工具FindBugs插件安装使用图解
- 使用OClint进行iOS项目的静态代码扫描
- AutoCode (vs插件)自动生成代码插件 下载及使用教程(C#版)( 更新简单自定义模板教程)
- 静态代码扫描(六)——火线针对资源关闭问题的横向对比报告
- 阿里巴巴Java开发规约扫描插件-Alibaba Java Coding Guidelines 在idea上安装使用教程
- source insight 相关插件使用(代码格式化,语法静态检查)
- 使用Eclipse插件EGit进行Git代码托管和协同开发教程
- 使用OClint进行iOS项目的静态代码扫描
- 阿里巴巴Java开发规约扫描插件-Alibaba Java Coding Guidelines 在idea上安装使用教程
- phonegap安卓环境下使用BarcodeScanner插件扫描二维码教程(包含PG3.X版本)
- Jenkins使用教程之用户权限管理(包含插件的安装)
- [PHP插件教程]002.代码包PHP Beautifier的使用