360Qtest专栏 [Jenkins 新插件] 兼容阿里开发手册 (P3C) 的火线插件安装使用教程

oggboy · 发布于 2017年12月04日 · 最后由 oggboy 回复于 2017年12月08日 · 550 次阅读

火线(Fireline)的Jenkins官方插件已经上线,目前火线不仅能检查出安卓代码中的安全类问题和内存泄露问题,还兼容了阿里开源的Java开发规约(P3C项目),本文将以教程的形式帮助大家了解如何在Jenkins中使用火线插件做静态代码扫描。

提示:如果您是第一次使用Jenkins,请先前往文章[新手教程] Jenkins 下载安装配置教程

Jenkins安装火线(Fireline)插件

  1. 点击左上角的Jenkinslogo,依次点击系统管理->管理插件
    在插件页面点击可选插件按钮,

    这里写图片描述

  2. 在过滤栏输入fireline,勾选查询出来的Fireline Plugin插件,点击直接安装。

    这里写图片描述

  3. 等待安装成功后,点击返回首页,开始配置。

    这里写图片描述

Jenkins配置火线

  1. 点击创建一个新任务,输入任务名称,选择构建一个自由风格的软件项目,点击确定。

    这里写图片描述

  2. 在配置页面的General栏输入项目名称,我这里输入的CodeScan

    这里写图片描述

  3. 在“源码管理”栏配置你想扫描的代码,我这里输入的是火线专属测试项目的git地址:https://github.com/ariesliu/TestCasesProject

    这里写图片描述

  4. 跳过构建触发器构建环境配置栏,在构建栏点击增加构建步骤,在下拉列表中选择Execute FireLine选项。

    这里写图片描述

  5. “构建”栏会出现火线相关的配置,报告路径会有一个默认的地址,不需要输入,默认报告会放在你的个人用户的report目录下,如图所示。配置完成,点击保存按钮。

    这里写图片描述

  6. 保存成功后,在调转后的页面点击立即构建

    这里写图片描述

  7. 此时页面会看到有一个任务正在执行,点击任务编号,此处为#1

    这里写图片描述

  8. 在此次任务的详情列表点击Console Output栏,可以看到任务的执行过程。等待任务执行完成后,可以看到火线报告的路径,如下图所示。

    这里写图片描述

  9. 打开该目录的testReport.html,可以看到本次的代码扫描结果。

    这里写图片描述

在Jenkins中直接查看火线扫描结果

  1. 在以上所述的配置完成后,我们查看扫描结果报告需要每次自己手动打开文件夹,比较麻烦。我们可以通过一个配置,实现在Jenkins中直接查看火线的扫描结果。
    首先我们要安装一个新的插件HTML Publisher plugin,再次去往系统管理-> 管理插件 ->可选插件,搜索HTML Publisher plugin,点击直接安装,安装成功后返回。

    这里写图片描述

  2. 回到我们的项目CodeScan进行配置,这次只需要配置构建后操作栏,点击增加构建后操作步骤下拉框,选择Publish HTML reports选项。

    这里写图片描述

  3. 点击增加按钮。
    这里写图片描述

  4. HTML directory to archive栏输入火线报告的生成路径,即在构建栏中火线默认的结果报告路径,复制过来即可。在Index page[s]栏输入testReport.html,这是火线默认生成的HTML报告的名称。这两项配置完成后点击保存。

    这里写图片描述

  5. 此时还没有完成,因为火线的HTML报告用了JS进行更好的效果展示,我们需要在Jenkins中配置运行执行JS脚本,否则火线报告在Jenkins中的展示会错乱。
    前往系统管理->脚本命令行,在文本框中输入System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")这行代码,点击右下角的运行按钮。

    这里写图片描述

  6. 此时回到我们的项目CodeScan,点击立即构建,构建完成后就可以点击HTML Report栏直接查看火线报告了。

    这里写图片描述

  7. Jenkins中的火线结果报告。火线将比较严重的问题,例如安全类问题列为最高级别Block级别 ,内存泄露问题列为风险级别,代码规范类问题(阿里Java规约)列为警告优化级别。更多级别详情可参考火线官网的规则文档

    这里写图片描述

  8. 点击问题详情列表栏,可以看到问题的详情。点击每一行最右侧的加号图标,可以看到错误的代码片段。

    这里写图片描述

  9. Search栏输入p3c关键字,可以过滤出所有阿里巴巴开发手册(P3C)的规则发现的问题。

    这里写图片描述

写在最后:

非常感谢阿里开源的Java开发规约(P3C项目),在静态代码扫描的代码规范方向,一直以来都没有一个统一的标准,开发人员们对于代码规范的理解和掌握能力参差不齐。在大厂的带头作用下统一化标准化之后,开发人员们更容易去认可静态代码扫描在代码规范方向的检测结果。

同时,火线(Fireline)也一直致力于静态代码扫描方向的研究,我们的主攻点是安卓代码中的安全类问题和内存泄露问题,也是因为这两类问题从开发人员角度来看,是更受关注和重视的。

另外,目前火线除了新上线的Jenkins插件,还有嵌入在开发人员编码IDE中的Android Studio插件,欢迎各位推荐给开发人员使用,让我们可以在全流程中保障代码的质量:开发编写代码环节(Android Studio插件)-> 代码编译打包环节(Jenkins插件)。

共收到 18 条回复
50

需要在jenkins中集成阿里P3C扫描的,可以先试试这个插件😉

10807

又是一波风骚的操作,溜溜溜👍

1064
oggboy · #3 · 2017年12月04日 作者
10807lancelot 回复

感谢捧场!😉 ,如果使用中有任何想法,可以随时提建议~

104

这是要抢阿里的风头呀,我只关心这代码会不会开源

1064
oggboy · #5 · 2017年12月04日 作者
104seveniruby 回复

火线Jenkins插件代码是开源的:https://github.com/jenkinsci/fireline-plugin

1522fe

越来越靠谱了

C86e07

按照文章配置,log里提示“您扫描的项目路径不正确”,有人遇到么?

156e5d

👍火速试用~

50
C86e07deldong 回复

已经转达给值班人员😓

96

赞 试用一下看看!

—— 来自TesterHome官方 安卓客户端

D6df85
C86e07deldong 回复

您好,具体配置遇到了什么问题,可以加一下火线用户群 298228528,,方便解答交流一下。

1064
oggboy · #13 · 2017年12月05日 作者
1522fecay 回复

感谢支持~😉

1064
oggboy · #14 · 2017年12月05日 作者
9260willys 回复

😉

C86e07
50simple 回复

谢谢

C86e07
D6df85Arya 回复

已申请加群

96ee0a

jenkins配置中设置报告路径为当前job的workspace下,保存好后再打开配置时路径又显示默认的了。
ubuntu15.04

1064
oggboy · #18 · 2017年12月08日 作者
96ee0araowm520 回复

非常感谢反馈问题~这个问题是BUG,我们正在解决中,下一个版本就会修复~获取最新的进度情况,请加火线用户群 298228528。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册