Page 2 of 6
For the moment, however, this development work has been visible to the broader public only in the form of the highly dynamic m2eclipse plugin. Although it is still a little unstable in some areas, this plugin positions Eclipse as the platform of choice for Maven development, providing a full and feature-rich graphical editor for the Maven pom.xml file. Features such as the Dependency Graph (see Figure 1) and Dependency Hierarchy, for example, make it much easier to visualize your project dependencies and to understand and resolve dependency conflicts that can occur when different libraries require different versions of the same third-party library.
Dependency-search is another feature of m2eclipse that, once you use it, you won't be able to do without. It makes adding new dependencies to your project a non-event. Gone are the days of hunting the Internet for the correct dependency references. Now you simply search the Maven repository by name and pick the version you want to include it in your pom.xml file.
A Maven repository manager is another tool that no serious Maven user could easily go without. A Maven repository acts both as a cache for dependencies downloaded from the public repositories on the Internet, and as a repository for libraries published and shared within the organization. 2008 saw the emergence of a new leader in this field, in the form of Nexus. Nexus is easy to use and configure, making administration of a Maven repository a real pleasure.
The traditional Java build-scripting tool, Ant, evolved little over the past year. Gant, in contrast, has been developing at a rapid pace. Gant is a build-scripting tool that lets you use Groovy rather than XML to build Ant tasks. Gant is notably the underlying build tool of the promising Grails Web framework, which also progressed by leaps and bounds this year (more on Grails later). For anyone who can't live without the flexibility of Ant, but doesn't like the wordy XML syntax, Gant is worth a look.
In a similar vein, Gradle is another promising Groovy-based build tool that made its debut in 2008. Like Gant, Gradle tries to provide Ant's flexibility with a Groovy syntax, but it also lets you leverage many Maven-like features such as transitive dependency management and convention over configuration.
The Java development world in 2008 is clearly moving beyond seeing continuous integration tool and frameworks as glorified schedulers, now viewing them as key to the whole SDLC infrastructure. Build metrics, for instance, are a great way to keep tabs on your development process as a whole. A good CI tool lets you keep track not only of the number of tests, and test failures, in the latest build, but also of how your tests are doing over time. This sort of data can also be used to fine-tune the development process.
In the past year Hudson has evolved from a nascent product to one of the more popular open source CI servers on the market. Although Hudson's dynamism sometimes comes at the cost of minor glitches, its intuitive user interface and slick reporting features make it a great little CI tool. Hudson also leads the market in Maven integration, being the only tool, currently, that can correctly decide which projects need to be rebuilt based on the Maven dependency graphs. This can save you a lot of work when you have complex, multi-module Maven projects. Hudson also comes with a rich library of plugins, allowing you to add features such as integration with JIRA or Trac, or automated deployment onto a Tomcat server.
Take the running time, or duration, of a typical build as an example. A slow build slows down the development cycle and discourages developers from building and testing locally and often (as the mantra goes). Knowing that a unit test failed in the last build is useful, and it lets you correct the issue quickly while the changes you made are fresh in your mind. But if a build failure persists over a dozen successive builds, this could indicate a deeper technical or organizational problem that the team leader might want to investigate. Similarly, a sudden increase in test duration can indicate a potential performance degradation, data that has practical uses in a development project.
Tools discussed in the article
reply this postBy Anonymous on August 16, 2010, 2:12 amI had got a dream to start my organization, however I didn't have got enough amount of money to do this. Thank God my colleague recommended to use the mortgage loans....
Reply | Read entire comment
Eclipse is too broad of an IDE categoryBy nieleyde on January 12, 2009, 2:17 pmDepending on the type of java development being done, there are a variety of Eclipse-based bundles available (Spring IDE, STS, Skyway Builder for Spring, MyEclipse,...
Reply | Read entire comment
Bamboo and Clover make a powerful combo!By kolofsen on December 29, 2008, 1:33 pmI'm with Atlassian. The new Test Optimization feature in the latest release of Clover adds incredible value to Bamboo by prioritising and/or selectively running...
Reply | Read entire comment
View all comments