Year in Review: The Java tools roundup

A year of progress for build automation, testing tools, and IDEs

Tools for the software development lifecycle, or SDLC, moved to the forefront in 2008. For this Year in Review feature, tools expert John Ferguson Smart homes in on what's new and improved about his favorite build-automation frameworks, testing tools, and IDEs. If you haven't been keeping up on the tools front, here's your chance to modernize your Java toolbox, just in time for the new year.

In any age or industry, keeping your tools well honed is key to success. If you're not using the latest and greatest in flint spear tips, you can't hunt mammoths as well as the tribe over the next hill. Software development is no exception: staying on top of development tools and techniques requires constant vigilance. This article takes a look at some of the highlights of 2008 in the world of Java software development lifecycle (SDLC) tools, namely build-automation tools, testing tools, and IDEs. I'll present a survey of how tools in these areas have progressed, in many cases by optimizing and adding new features favorable to developers. Along the way, I'll also discuss the big picture behind some of these improvements -- such as mainstream adoption of CI, the rise of scripting on the JVM, and increasing demand for tools that support programming for multicore systems. Let the tour begin!

Build automation

I'll start with one of the cornerstones of any modern software development process: build automation. In the broad sense, build automation includes continuous integration (CI) tools of course, but also build-scripting tools, code-quality metrics tools, and version-control, or SCM repositories.

The first stage of build automation is an automated build script. Traditional tools such as Apache Maven and Apache Ant, as well as newcomers Gant and Gradle, facilitate build scripting. In 2008, I saw many large organizations move toward Maven, attracted by the possibility of standardizing their development practices across multiple teams and imposing a more coherent, transparent architecture on their internal software components. This trend certainly looks set to continue in 2009.

Maven: New and upcoming features

In 2008, Maven 2 version 2.0.9, the final version of the Maven 2.0 series, was released. Maven 2.0.9 fixes bugs and adds a few new features. One of its nicer improvements is better stability: as of Maven 2.0.9, the default versions of the lifecycle plugins (which implement all the core Maven features) are bound to the version of Maven. This means that lifecycle plugin versions can't be updated behind the scenes as new releases appear, a habit that could occasionally result in unpredictable build behavior. Another nice feature is the ability to override the dependencies used in plugins; for example, you can update the version of Checkstyle used by the Checkstyle plugin.

However, the most active area of Maven development has been dedicated to the upcoming new major release, Maven 2.1, due to come out in early 2009. This new version will contain many performance improvements and optimizations, including a more refined build algorithm for multi-module projects, and the possibility to download unrelated dependencies in parallel, rather than sequentially as we do today.

1 2 3 4 5 6 Page 1
Page 1 of 6