Java project feedback with Glean
Published March 22, 2007 by John
I’ve written a small framework of Ant scripts, that I call Glean, that drive a set of open-source tools to generate source code analysis, documentation and metrics for Java projects. It’s available for download, and distributed under an MIT License.
For starters, I have scripts packaged to drive a number of tools that can give you insight into your project. These include:
- CPD (Copy/Paste Detector)
- Emma (code coverage)
- JavaNCSS (source code metrics)
- PMD (static analysis)
- StatSVN (Subversion repository activity analysis)
- UMLGraph (generates UML class diagrams from code)
- …and about a dozen more
I think I’ve got the most popular ones covered, and plan to grow the set, so if there is a tool you don’t see on the list, or on the to-do list, let me know and I’ll add it to my to-dos.
My goal is to let people drop this in to their current project build system and get an extensible feedback system quickly and easily. Kind of analogous to Maven plugins, but less ambitious and aimed at those using Ant. The only dependencies (other than the open-source tools that it drives) are a JDK (1.4 or better) and Ant (1.6.5 or better). There are a couple of tools that require JDK 1.5 if you want to use them, but the bulk of them run fine with JDK 1.4.
The download has the Glean scripts and basic doc pages in it. I haven’t looked at all of the licenses involved with all of the underlying tools, so for now you will need to download the individual tools yourself; if I can find a way, I’d like to at least have a script that would download a set of tools for you.
The basic docs explain how to set up Glean to run it against your project’s source tree. I’ve also included some sample configurations for a handful of open-source projects that show how different types of source layouts and tool configurations might look.
This is something I put together because I’ve needed it at clients I work for. The fact that I’ve gotten so much mileage out of all of the open-source tools leads me to offer this back to the community. Enjoy!
Filed under Tools
Posts