Category Archives: Continuum

Better Builds with Maven now available to read online

Better Builds with Maven has been available for a few years now, initially to those who registered on the web site and then available as a freely downloadable PDF. However, now it is finally available to read online as HTML, bookmark, etc. (in addition to the PDF download). It has also been relicensed under a Creative Commons license.

While the book is now somewhat dated and there are newer alternatives available, the information is still relevant. It has had minor updates as it moved homes several times over the last few years.

I hope you find this useful!

Maven training in Oakland, November 2

As I’ve blogged previously, I’m gearing up again to present my training session Apache Maven: End-to-end at ApacheCon US in Oakland in just a few weeks now. There are still spots available, so go ahead and register from the ApacheCon US site. Noirin offers some tips on how to justify ApacheCon to your boss.

The training session is hands on – all of the software and material is distributed on CDs and we spend some time digging into Maven and development infrastructure in a variety of ways.

Apart from the standard training material, there is the opportunity to work through some specific questions for your environment if it is something that interests the whole group, and of course those discussions can be continued over the rest of the time at the conference.

Hope to see you there!

Interview with Feathercast about Maven Training

Last week, Rich Bowen from Feathercast interviewed me about the training I’ll be hosting in Oakland on November 2: FeatherCast » Blog Archive » Episode 63: Brett Porter – Maven. More information about the training session can be found on the conference web site or in my previous post.

Apache Maven: End-to-end training in November

It’s that time of year again! ApacheCon US in Oakland is on 2-6 November 2009. There are still discounts for registration by September 25.

I’m presenting my full-day Maven and development infrastructure training again on Monday November 2, called Apache Maven: End-to-end:

This training session will walk through the lifecycle of developing a typical Java application from creation to deployment, and show how to use Apache Maven most effectively to manage the build and development process. In addition to the fundamental building blocks of the project, the session will cover testing, day-to-day development in the IDE, application of Maven best practices, effective dependency management, establishing a release process, using profiles effectively, setting up documentation, tracking development reports and practices. Effective use of continuous integration (illustrated with Apache Continuum) and repository management (using Apache Archiva) as a part of development infrastructure for team and enterprise environments will be demonstrated. This course will be suitable both for those that are looking to get the most out of their existing Maven projects, and those that are looking to use Maven for the first time. Time is reserved for addressing specific situations that attendees have encountered in existing projects.

The material is aimed to offer most to the intermediate Maven user, while still being appropriate for Maven beginners, and is refreshed with the latest work from the book.

Learning from Maven Training

One of the interesting side effects of hosting a Maven training course is the things I learn as an instructor. Some of them you already know but need reminding of, others you just don’t get until you watch someone try it unaided.

Recently, I ran my "Apache Maven, End-to-end" course, firstly with the beginners course in Manila and then the intermediate course at ApacheCon US. Both had reasonable turn outs, with a late increase in registration to the ApacheCon session that was encouraging.

Some of the things I took away from it:

  • Maven’s diagnostics when things go wrong still suck. I do all I can to prevent network issues from impacting the class by providing a repository that covers the required parts of all the content, but there were still 2 or 3 instances of the "plugin not found" message when a network failure occurs.
  • The basics are still helpful. Though those in the intermediate course already had quite a bit of exposure to Maven, I received positive feedback to covering the basic principles again. It reinforces the "Maven way" of doing things and some of the reasoning behind it starts to make more sense, even if you already know how it works.
  • Repository managers are still taking hold. While a number of people were using one of the available managers, it seemed to be largely for proxying, and no one was running one on their own machine. Even though I only covered it briefly, that section was well received even by those running something other than Archiva.
  • The devil is in the details. You can cover all that you need to be able to do with Maven itself in about a half day, and it provides enough to do 80% of what you’ll ever do with Maven. You can only run a few specialised sections, such as sites, assemblies and releases. The other 20% widely varies and requires learning and researching specific plugins for those tasks. None of this is surprising – but it is encouraging that learning Maven is not as hard as it looks to some, but also that a better way of collating plugins and practices is limiting the ability of people to use Maven.  The course I run has basically an exponential ramp in what you are assumed to know and able to do once the basics are in place – as you set up infrastructure and team capabilities it is still reasonably easy to piece things together gradually if you’re building on a solid project structure.
  • Test more on Windows. I had almost forgotten how much harder life is to be a Java developer on Windows as seemingly trivial things go wrong. Trying to start a server, pinning to wrong Java versions, etc.

There’s always more and every time I run a course I come back with a series of notes to re-apply to the material, and bugs to fix in the software. But an encouraging point, and one I noticed from the conference in general, is that Maven acceptance is on the rise. Even though there haven’t been radical improvements to the underlying software since 2.0.x, the principles behind it have started to sink in, and complaints tend to be specific fixable issues rather than general frustration. Alternatives continue to get mileage, but none (yet) have been the Maven-killer they each claimed to be. Underneath it all, it seems we got a lot right after all.