欢迎使用火线

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

官网

火线官网

关于试用

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

关于扩展

火线在我们的努力下,实现了几个显著的优点:
跨平台
同时支持任意操作系统,目前 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 编程基础的同学,非常欢迎大家加入讨论。


↙↙↙阅读原文可查看相关链接,并与作者交流