maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "John Casey (JIRA)" <>
Subject [jira] Closed: (MNG-3426) regression : <dependency> in plugin configuration doesn't override plugin classpath
Date Fri, 21 Mar 2008 16:05:46 GMT


John Casey closed MNG-3426.

      Assignee: John Casey  (was: nicolas de loof)
    Resolution: Fixed

The move to use LinkedHashSet was definitely correct IMO, but it led to some weird side effects
for dependency ordering. I've gone back and added a pre-processing step using a LinkedHashMap
to merge in the plugin-level dependencies and those from the plugin-POM itself. I kept the
plugin-level deps as first to be added, which gives them precedence (so they can replace dependencies
from the plugin POM), but added code to make sure any duplicates according to dependencyConflictId
are avoided. This is consistent with dependencies in the POM, where duplicates there should
lead to a model validation exception during project building.

I think this issue can safely be put to bed now.

> regression : <dependency> in plugin configuration doesn't override plugin classpath
> -----------------------------------------------------------------------------------
>                 Key: MNG-3426
>                 URL:
>             Project: Maven 2
>          Issue Type: Bug
>          Components: Plugin API
>    Affects Versions: 2.0.8
>            Reporter: nicolas de loof
>            Assignee: John Casey
>            Priority: Critical
>             Fix For: 2.0.9
> Many maven plugins are wrapper around other tools. The plugin is designed for a version
of the tool, and in many case user will want to use a specific version without having to patch
the plugin. The <dependency> element on plugin configuration is a common way to do this,
by overriding the plugin POM dependency with another version. 
> <plugin>
>    <artifactId>castor-maven-plugin</artifactId>
>    <dependencies>
>        <dependency>
>             <groupId>org.codehaus.castor</groupId>
>             <artifactId>castor</artifactId>
>             <version>VERSION OF CASTOR I WANT TO USE FOR CODE GENERATION</version>
>        </dependency>
>    </dependencies>
> </plugin>
> This used to work with maven < 2.0.8
> In maven 2.0.8, this doesn't work anymore as the <dependency> set in plugin configuration
is added to plugin classpath, as a duplicate for the one declared by the plugin but LATER
in the classpath (but I may be wrong on this analysis).

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:


View raw message