Tattletale1可以帮助你分析你的项目中组件之间的依赖关系。通过扫描你的项目,它可以生成不同的报告,以HTML表单的形式展现出来,让你对你的项目所使用的组件,和项目代码模块之间的相互关系有更加直观的把握。
它可以分析的内容包括:
- Dependants – 被依赖关系
- Depends On – 依赖关系
- Graphical Dependencies - 图形化的依赖关系
- Transitive Dependants – 间接被依赖关系
- Transitive Depends On – 间接依赖关系
- Circular Dependency – 循环依赖
- Class Location – 类的位置
- OSGi
- Sealed information – 封装信息
- Signed information – 签名信息
- Eliminate Jar files with different versions - 项目中引用了同一个jar的不同版本的有关信息
- Invalid version – 无效的版本信息
- Multiple Jar files – 相同的jar文件出现在多处
- Multiple Locations
- Unused Jar – 未使用的jar
- No version – 无版本信息
- Black listed API – 订制黑名单过滤,找出有问题的API
- JAR archive
下面我们来看一下如何使用Tattletale进行些实际的工作。首先是下载Tattletale。下载它是非常方便的,访问这个网址,下载最新的稳定版本:
下载完成后,我们把压缩包解开,可以看到项目目录里面非常干净,只有几个jar以及pdf格式的用户手册和开发手册各一份。实际上这是这个项目的开发者Jesper的一贯风格:干净、简洁。我们在之间的Papaki2的介绍中就可以体会到这一点。
闲话少说,我们来玩玩看。现在我们拿TT来分析javassist这个项目试试看。我使用maven下载了一份javaasist的jar,假设它位于:
1 | /javassist/javassist-3.6.0.GA.jar |
我现在进入TT的解压后的目录,使用这个命令来分析javassist:
1 | java -Xmx512m -jar tattletale.jar /javassist/javassist-3.6.0.GA.jar ./output/ |
此时TT会开始分析javaassist项目的相关信息,这个过程可能会持续时间比较长,取决于你的机器硬件配置。分析完成后,TT会生成一份分析报告在我们指定的output目录中。我们打开这个分析报告,可以看看TT生成的分析结果:
可以看到,TT的报告分为三个等级:
- INFO – 信息
- WARNING – 警告
- ERROR - 错误
同时TT的报告有三种颜色:
- 红色
- 黄色
- 绿色
红色代表需要关心,黄色代表警示,绿色代表正常。TT针对不同的报告各自有一套默认的机制,配置了在什么情况下应该显示什么颜色。当然这个默认机制是可以通过配置来进行改变的,详细的配置方法可以通过阅读用户手册获得。
在这里,我们看一看TT生成图形分析报告,通过一个关系图,我们可以看到项目中组件的相互关系:
现在,我们已经基本上理解了TT的工作机制,通过这个工具,我们不但可以分析项目中组件的相互依赖关系,还可以通过它分析项目引用了哪些库,有哪些库被引用了但未被使用,以及各种项目中可能存在的问题。通过熟练使用Tattletale,它必成为我们日常工作中的利器。
1 大家更习惯简称它为TT
2 http://bluedash.net/spaces/Papaki
本文作者
阿男
Now, here, you see, it takes all the running you can do, to keep in the same place. |