Found an interesting post in blogosphere that stroke a "chord":
Now after all these years, I think I found the right solutions for Enterprise Java Builds. The solution involves 5 open source projects: Maven, Subversion, Hudson, Nexus, Sonar.
(from:
The Ultimate Enterprise Java Build Solution).
For some years now, this has more-or-less also been my vision. Currently we are:
- building all new projects with Maven (with some legacy stuff still using Ant). Maven has some issues, but most of the time it works. And it seems to be getting better (eventually we might even be able to get rid of all that verbosity in our pom.xml files). I have also evaluated Gradle - it seems like a good replacement for Maven, but so far I have adopted the "wait-and-see" approach - waiting until it is used widely enough so that it would offer similar level of integration with other tools in the toolchain.
- happy users of Subversion (3-4 years now)
- running a Hudson-trial. I call it a "trial" because Hudson needs quite a lot of extra plugins to be used "in production" properly. And currently we do not have the time resources needed to dig deep into the plugin world of Hudson.
- running a Nexus-trial. Currently we are using Maven Proxy and back in December I tried to replace that with Nexus. I ran into some issues with user-authentication (it is running behind Apache httpd) and decided to wait for newer version where the security model is more pluggable (1.2, if I remember correctly). Now the newer version is out, but we currently do not have the time to dig into this again.
- not using Sonar yet but it has been on my radar for ~9 months - I have identified that it is a useful tool to have in our build environment, but have not had the time to try it out.
And then we need some extra time to integrate all those new tools with our existing tools (JIRA, Fisheye). Well, we need to assign someone to work full-time on this.
UPDATE: added comment about Gradle.