December 10, 2009

Maven Plugins: Current Versions

Upgrading Maven Plugins

In preparation for a later switch to Maven 3 (which is already knocking on the door) as well as to get rid of some plugin related issues we are suffering from, I decided to update the Maven plugins we use for build and site generation.

Of course, we are following best practice and are locking down the version of all plugins in project.build.pluginManagment.plugins section. This is done in the company's topmost POM, so that all company projects would use the same versions once they reference the latest parent POM.

As you might know, upgrading to new plugin versions is always an adventure and you have to test your builds seriously, which is of course hard when you are going to change the company settings...

Build Plugins

Well, here is the list of build plugins we now use with their current version, as well as (in brackets) the version that Maven 3.0-alpha5 defines in its internal POM. I have highlighted where both versions differ:

  • maven-archetype-plugin: 2.0-alpha-5 (see comment below)
  • maven-assembly-plugin: 2.2-beta-4 (2.2-beta-4)
  • maven-clean-plugin: 2.3 (2.3)
  • maven-compiler-plugin: 2.0.2 (2.0.2)
  • maven-dependency-plugin: 2.1 (2.0)
  • maven-deploy-plugin: 2.4 (2.4)
  • maven-ear-plugin: 2.4 (2.3.1)
  • maven-ejb-plugin: 2.2 (2.1)
  • maven-enforcer-plugin: 1.0-beta-1
  • maven-help-plugin: 2.1 (2.1)
  • maven-install-plugin: 2.3 (2.3)
  • maven-javadoc-plugin: 2.6.1 (2.5)
  • maven-jar-plugin: 2.3 (2.2)
  • maven-release-plugin: 2.0-beta-9 (2.0-beta-9)
  • maven-resources-plugin: 2.4.1 (2.4.1)
  • maven-site-plugin: 2.0.1 (2.0.1)
  • maven-source-plugin: 2.1.1 (2.0.4)
  • maven-surefire-plugin: 2.4.3 (2.4.3)
  • maven-war-plugin: 2.1-beta-1 (2.1-alpha-1)
  • build-helper-maven-plugin: 1.4
  • failsafe-maven-plugin: 2.4.3-alpha-1
  • cargo-maven2-plugin: 1.0
  • docbkx-maven-plugin: 2.0.8

It's a bit strange that Maven 3.0-alpha5 (which came out end of November) does not use the latest version of all those plugins, most of them having been released before that date. I don't know if this was intentional or not... Let's hope it's not because of unsure quality of latest plugin versions ;-) Anyways, I decided to upgrade to the latest available version for all plugins.

Reporting Plugins

Here's the list for plugins related to site reports:

  • cobertura-maven-plugin: 2.3
  • findbugs-maven-plugin: 2.3
  • jdepend-maven-plugin: 2.0-beta-2
  • maven-checkstyle-plugin: 2.4
  • maven-jxr-plugin: 2.1
  • maven-pmd-plugin: 2.4
  • maven-project-info-reports-plugin: 2.1.2
  • maven-surefire-report-plugin: 2.4.3
  • taglist-maven-plugin: 2.4

I'm going to show some tips and issues when upgrading to these versions in an upcoming post...

5 comments:

  1. hi there,

    from where did you get a released version of maven-archetype-plugin:2.0-alpha-5?

    It's not yet present in repo1.maven.org, but it seems to have been already released (at least it is tagged as version 2.0-alpha-5 in svn)...

    kind regards,
    torben

    ReplyDelete
  2. Good point, Torben. You made me think hard, but all I could find out is a bit mysterious ;-)

    In fact, we don't have maven-archetype-plugin:2.0-alpha-5 downloaded by our Nexus (or elsewhere). Since this is defined in the <pluginManagement> section of our company POM, Maven is not going to download the plugin until it's actually required by some subproject. That's why Maven is not complaining about the missing version, neither in the base POM nor in any other of our projects.

    Moreover, you would not use the archetype plugin in the context of another POM, so this plugin version lockdown is rather silly here. I have also double-checked that this definition is not contained in the core Maven's root POM, both for Maven 2.2.1 and 3.0-alpha-5. So it seems it creeped in somehow in our base POM...

    It's the wrong version and doesn't make much sense either, so I removed it from both our POM and the post. Thanks for pointing that out!

    Regards,
    Christoph.

    ReplyDelete
  3. Note that where you show

    failsafe-maven-plugin: 2.4.3-alpha-1

    This plugin now has a newer version with a different name:

    org.apache.maven.plugins:maven-failsafe-plugin:2.5

    http://maven.apache.org/plugins/maven-failsafe-plugin/usage.html

    ReplyDelete
  4. The surefire plugin recently has also been upgraded to version 2.5

    ReplyDelete
  5. You're right, thanks for the info. However, I think I'm not going to keep this list up-to-date... do you want me to?

    ReplyDelete