Tag Archives: Java

Updated Multi-module Support for Maven Release Plugin

Last week Dennis started things moving to have another release of the Maven Release Plugin. The release process should start very soon, so please join us on dev@maven.apache.org to help test it!

This is certainly a nice one to have out the door, not only because of the length of time since the last release but because it fixes some important bugs (Subversion 1.6 support for starters), and improves multi-module support.

Having been bitten by the latter category myself very recently I took the opportunity to get a couple of changes in.

Support for flat directory multi-module projects

This highly requested support was actually added by Deng way back in May last year, but it was only recently that I started using the new version of the plugin and discovered a small corner case I jumped in and made a couple of improvements and fixes.

While I would always recommend using a typical hierarchical Maven multi-module project, there are a number of existing projects using the flat structure, particularly in non-Java environments. It’s good that the release plugin can now support anything with a common trunk.

This means that projects like the following will now release correctly (run from the parent directory):

.
|-- release-parent
|   `-- pom.xml
|-- release-module2
|   `-- pom.xml
`-- release-module1
    `-- pom.xml

Not requiring artifacts to be in the local repository before releasing

This controversial issue has popped up a number of times and proven to be a real nuisance in releases, where a multi-module project needed to be built locally before it can be released (including the preparation test, that makes 3 full builds!), or at best spouted a large number of warnings about missing dependencies on the artifacts it was yet to build.

In the end here we decided to revert to the original behaviour and accept the limitations that came with, while making the typical release faster and easier. The release:prepare-with-pom goal has been added to cater to the use case for which the dependency resolution was put in place originally. With this intended to be the 2.0 release of the plugin, we can stick to this behaviour going forward.

In the future, Maven 3.0 has added additional capabilities for plugins to operate with their modules without building them first, which will allow a unified and enhanced release:prepare goal once more, but in the mean time we’ve opted to put in place the best solution for the majority of Maven users today.

Sydneysiders: Java User Group tomorrow!

I’m not usually available on Thursday nights, but am making an exception to attend this month’s Sydney JUG. John Smart, of Java Power Tools fame, will be talking about behaviour driven development and easyB.

Behavior Driven Development (BDD) in Java with easyb John Ferguson Smart

John Ferguson Smart is a freelance consultant specializing in enterprise Java, Web development, and open source technologies, currently based in Wellington, New Zealand. Well known in the Java community for his many published articles, John helps organizations optimize their Java development processes and infrastructures and provides training and mentoring in open source technologies, SDLC tools, and agile development processes, including the popular Java Power Tools Bootcamp. John is principal consultant at Wakaleo Consulting, a company that provides consulting, training, and mentoring services in enterprise Java and agile development. He is also the author of the recently-published Java Power Tools book.

As it says on the website:

Hosted at Atlassian at 173-185 Sussex Street. Refreshments 6:00-6:30, followed by presentations / discussion / pizza. The meetings are free, with no requirement for membership.

See you there!

Releases in Maven land

People have been busy in the Maven project, with releases coming out for a number of projects.

First up, Emmanuel released Continuum 1.1 – a much anticipated step up for the CI server with a Maven-bent.

Next, Deng released Archiva 1.0 – the first official release of the build artifact repository manager, and is certainly one of the best choices at present.

In both cases, this should be the start of far more regular releases.

And to top it off, Brian hauled together Maven 2.0.8. That along with the regular plugin releases has made it a productive end to the month!

Preparing for Maven and Eclipse presentations in November

November is a great month for conferences for anyone interested in Open Source, particularly those located in the Asia Pacific with an interest in Apache or Eclipse projects.

I’m interested to see how OSSummit Asia goes this year – it is the first time it has been run, and the first time Apache and Eclipse have held a conference together. The combination has worked well with a strong line up of speakers, and lots of complimentary technologies lending themselves to talks that cross over.

I’m interested to see a successful conference of this kind held in Asia. I certainly prefer the 8-10 hour flights over the 20 hour flights to Europe or east coast US! Who knows – maybe ApacheCon OZ is next.

I’d certainly encourage people to come along if they can, and spread the word. It should be a great conference, and it’s always interesting to meet some of the project committers, contributors and users and to share experiences.

But all this does mean I’m living in Keynote right now as I polish, update and generally refresh the presentations I’ll be giving. OSSummit is the big one for me, with an extended development system training using Maven technologies, a presentation of the state of the nation regarding artifact repository technologies, in addition to my Maven Best Practices talk which I’ll also be presenting at ApacheCon US.

Should be a great month – leave a comment if you’re planning to be there!

Maven, Continuum, and Archiva training at OS Summit in November

It is now just over a month until OS Summit Asia, which is being held in Hong Kong. I will be presenting a number of sessions at this year’s conference, including a training session about Maven, Continuum and Archiva.

I’m also very pleased to announce that Deng Ching will now be co-presenting the training session. Deng has been involved in Maven for the last couple of years and would be well recognised by those that use the Maven Users List or follow Archiva development.

Maven, Continuum and Archiva can be used together to enhance a development ecosystem, aiding in the improvement of both quality and development velocity. This training session will demonstrate step-by-step how to use these tools, maximize their effectiveness, and cover best practices. Topics covered include a brief Maven overview and sample project, setting up a build and repository server, the optimal repository configuration for multiple environments (such as development, testing and production), adding continuous integration into the process, and performing continuous reporting. It will also cover effective Maven client usage, and Eclipse integration. By the end of the session, the developer should be able to set up an effective development ecosystem for teams of any size.

Another positive is that the time slot has been expanded since the last time I hosted this training so there will be time to go into more depth about Maven itself, and using Maven from the Eclipse IDE.

If you’re in need of better build and release management, sign up for the training session today!