360Qtest专栏 静态代码扫描工具火线 (续)

simple · April 25, 2016 · Last by liuxiaoyao0602 replied at July 24, 2016 · Last modified by admin 恒温 · 1647 hits

欢迎使用火线

前阵子在社区给大家分享了我们公司内部使用的静态扫描工具火线,没想到关注度挺高,不少同学问我什么时候开源出去,现在好消息来了,经过同事的一天努力,我们对外的官网终于上线了,并且我们开放了一个试用版给大家下载试用,满足大家的动手欲望,顺便跟大家分享一下我们目前在做的和后续准备做的事情。

官网

火线官网

关于试用

关于试用版,由于某些原因,给大家使用的是混淆后的版本,大家可以先了解一下这个工具是怎样运行的,大概能发现的类型是啥样的。有心的同学可以打开里面的包结构,看一下大概的组成部分。

关于扩展

火线在我们的努力下,实现了几个显著的优点:
跨平台
同时支持任意操作系统,目前JDK适配支持1.7、1.8(由于PMD的原因,暂时不支持1.6的环境)。
跨语言
一些同学问能不能支持其他语言,比如OC或者PHP等等,火线由于人力和时间的限制,目前只支持安卓相关的检查,如果想检测其他语言的,完全可以自己动手去做,可以支持

C, C++, C#, PHP, Ruby, Fortran, JavaScript, PLSQL, Apache Velocity, Ruby, Scala, Objective C, Matlab, Python, Go这些语言的检测。

跨引擎
由于火线跟底层扫描引擎完全解耦的,所以不管是PMD,还是Findbugs都可以集成进来,我们现在还在做一些尝试来集成Findbugs的某些特殊功能,目前遇到了一些技术瓶颈,相信很快就可以开放出来给大家使用。

如果已经在使用findbugs工具的同学,又想使用我们的火线,方法很简单。有兴趣的同学应该看到了,虽然我们上层架构做了混淆,但是底层是基于pmd的两个包进行扩展的,如图所示:

那么想扩展规则的同学该怎么做呢?从PMD官网(pmd.github.io)下载最新的源代码,找到pmd-core和pmd-java进行扩展,然后把jar包丢进火线的目录就可以了,不过新的规则需要在我们的xml配置文件中添加,否则是不会去执行的,修改的位置如下图所示:

关于自定义规则

我们会不定期的在我们的公众号和testerhome同步更新一些文章,教大家如何编写自定义规则,这个需要具备一定的java编程基础的同学,非常欢迎大家加入讨论。

关于开源

我们一直在往这方面努力,目前技术上还不够完善,需要更多的时间和产品去检验,我们会不断调整规则,优化误报率,跟大家保持分享和互动。

如何联系我们

其实我每天都有逛testerhome,感兴趣的大家也可以关注我们的公众号

或者加我们的火线交流群去讨论(我们会及时答复相关的疑问)
群号:298228528

共收到 11 条回复 时间 点赞

支持,能简单上手

鼓掌,工具用着不错

simple #3 · April 26, 2016 作者

#2楼 @zhangzhao_lenovo 谢谢啦! 😄

simple #4 · April 26, 2016 作者

#1楼 @nancy2896 谢谢啦! 😄

棒棒哒~~简单实用

@simple 能集成到Jenkins吗?

simple #7 · June 13, 2016 作者

#6楼 @jira 可以,用command运行,支持xml格式的报告

#7楼 @simple 嗯,用那个插件可以生成报告啊?pmd插件貌似不行

赞,简单易上手。比sonarqube小巧多了

有个问题啊,生成的报告无论是集成到Jenkins,或者本地打开testReport.html,浏览器只能显示报告的前半部分,不能左右拖动,只有超大显示器才能看全。。。

找了这个工具很久,谢谢大神分享。

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up