Code auditing tools

This is a list of popular code testing tools. Most of them are free and can be plugged-in to your development and/or build tool. 
PMD (free) 
The abbreviation PMD does not mean anything but the tool helps scan for problems in your sources, like bugs, dead code, suboptimal code, overcomplicated expressions and duplicate code. 
Checkstyle (free) 
Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard. It automates the process of checking Java code to spare humans of this boring (but important) task. This makes it ideal for projects that want to enforce a coding standard. 
Dependometer (free) 
Java-based analysis tool for Java projects. Calculates metrics described by authors like Robert C. Martin, Craig Larman and John Lakos. Analyzes dependencies and detects cycles. Verifies the logical architecture against the physical implementation. 
Findbugs (free) 
A program which uses static analysis to look for bugs in Java code. 
Simian (commercial) 
Duplicate code checker.

List of (continuous) build related tools

The following list contains build tools that come in handy for Java developers. There are so many tools that I should make a comparison matrix. Most of them are open source or free, some do a lot and some a little, some are easy to work with and some make you crazy..
Team City (commercial product) seems to be the rising star in the build world, so give that one a good look.
Dependency management tool (Apache).
When you are using 3d party components (be it open source or commercial) chances are that these components themselves need other components and things can get complicated. Ivy helps managing these dependencies and keeping things simple.
Deployment framework (HP).
SmartFrog is a software framework for helping to build distributed, component-based software systems in a way that makes them easy to configure, automatically install and start, and automatically shut down.
Project management and comprehension tool (Apache).
With Maven you can manage projects by creating automated builds, documentation and code test/metrics. The latest has improved dependency management.
Java-based build tool (Apache).
Although some say that Ant has been replaced by Maven, some argue that for some stuff Ant is still the way to go.
Cruise control
Framework for a continuous build process (Sourceforge).
It includes, but is not limited to, plugins for email notification, Ant, and various source control tools. A web interface is provided to view the details of the current and previous builds. The authors stress the need for continuous and automated builds, running many times a day so that integration problems are reduced.
Maven Continuum
Continuum is a continuous integration server for building Java based projects (Apache).
Continuum is a continous integration server that will ensure the health of your code base.
Build automation and management tool (Javaforge).
Continuous Integration or nightly builds can be easily set using a clean web interface. Executed builds are well managed using functions such as search, categorization, promotion, patching, deletion, etc. It also acts as a central build artifacts repository and download area for your whole team.
Build Management Server (Urbancode).
Open Source build management product that uses Ant, now also has a commercial brother.
Team City
Server-based continuous build tool (Jetbrains).
Some sort of super continuous build tool, compared to the above. It includes more management and communication features. Remarkable other features:
– remote build (developers gain time)
– delayed check in (broken code cannot be checked in)
– project dashboard
– code quality checking


AppFuse sounds like an interesting project:

AppFuse is an open source project and application that uses open source tools built on the Java platform to help you develop Web applications quickly and efficiently. I originally developed it to eliminate the ramp-up time I often found when building new Web applications for customers. At its core, AppFuse is a project skeleton, similar to the one that’s created by your IDE when you click through a wizard to create a new Web project. When you create a project with AppFuse, it prompts you for the open source frameworks you’d like to use and then creates your project. It uses Ant to drive testing, code generation, compilation, and deployment. It provides your directory and package structure, as well as the libraries you’ll need to develop a Java language-based Web application.

Getting started with open source tools for the Java™ platform such as Spring, Hibernate, or MySQL can be difficult. Throw in Ant or Maven, a little Ajax with DWR, and a Web framework — say, JSF — and you’re up to your eyeballs just trying to configure your application. AppFuse removes the pain of integrating open source projects. It also makes testing a first-class citizen, allows you to generate your entire UI from database tables, and supports Web services with XFire. Furthermore, AppFuse’s community is healthy and happy — and one of the few places where users of different Web frameworks actually get along.