[ 
http://jira.codehaus.org/browse/MNG-3311?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_115945
 ] 

Steve Ebersole commented on MNG-3311:
-------------------------------------

John, regarding the example from my original description...  What I thought 
this would do was to find the dependency in my local project dependencies and 
force that on the plugin just as if I had specified I version.  Note that that 
is subtly different than "2. Forcing versions inside the plugin's dependency 
closure using dependencyManagement:.   Now, you know the code base far better 
than me, so perhaps seeing that snippet, you expect something else to happen; 
but this is what I expected as a user and in the absence of any documentation 
of what would happen.

> Better/easier way to override plugin dependencies
> -------------------------------------------------
>
>                 Key: MNG-3311
>                 URL: http://jira.codehaus.org/browse/MNG-3311
>             Project: Maven 2
>          Issue Type: Improvement
>          Components: Dependencies, Plugins and Lifecycle
>    Affects Versions: 2.0.8
>            Reporter: Steve Ebersole
>         Attachments: antlr-problem-part2.tar.gz
>
>
> Currently, the only way to override the version of a dependency used by a 
> plugin is to "fully specify the dependency" in the 
> build/plugins/plugin/dependencies section.  This is difficult for cases where 
> the project itself depends on said dependency as well.  Take the case of the 
> antlr-maven-plugin at codehaus (as this is where I experienced the problem).  
> The plugin is used to generate parsers as part of the build using Antlr.  The 
> project, itself, would also need to define Antlr as a dependency since it 
> would then have a compile and runtime dependency on Antlr.  So, at the very 
> least, we end up with two definitions of the Antlr dependency.
> For background, defining the same dep twice is not that big of a deal.  I 
> "dealt with it" by using a property for the Antlr version to use, and then 
> referencing that in the dependency definitions.  Where it started to get very 
> unsavory for me was when I started moving my "base line" deps into a 
> <dependencyManagement/> section, and especially when that 
> <dependencyManagement/> was defined in the parent pom.  The issue I ran into 
> was that I could no longer use a property (if I defined it in the parent, it 
> is not inherited into the child where i need to define the plugin).  The next 
> thing I tried that I "reasonably" thought would work was to define the 
> <dependencyManagement/> section in the parent, and in the child to define the 
> dependencies/dependency without the <version/> tag and then to try the same 
> in the build/plugins/plugin/dependencies/dependency section.  However that is 
> apparently not valid in the  build/plugins/plugin/dependencies/dependency 
> (org.apache.maven.BuildFailureException: For artifact {antlr:antlr:null:jar}: 
> The version cannot be empty.)
> I am not exactly sure what the "best" option is.  I certainly believe that 
> the following should work (which is what I described above):
> <dependencyManagement>
>     <dependency>
>         <groupId>antlr</groupId>
>         <artifactId>antlr</artifactId>
>         <version>2.7.6</version>
>     </dependency>
> </dependencyManagement>
> <build>
>     <plugins>
>         <plugin>
>             <groupId>org.codehaus.mojo</groupId>
>             <artifactId>antlr-maven-plugin</artifactId>
>             <version>${antlrPluginVersion}</version>
>             <dependencies>
>                 <dependency>
>                     <groupId>antlr</groupId>
>                     <artifactId>antlr</artifactId>
>                 </dependency>
>             </dependencies>
>             ...
>         </plugin>
>     </plugins>
> </build>

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to