[ 
https://jira.codehaus.org/browse/MRELEASE-543?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=338346#comment-338346
 ] 

Sergei Ivanov commented on MRELEASE-543:
----------------------------------------

We have just run into a similar issue (again!) while trying to build an old tag 
using a release POM.

I believe I have an easy solution for the problem though, and here's what I 
propose:
each and every dependency declaration in the generated release POM needs to 
have a wildcard exclusion attached to it (see MNG-2315 and MNG-3832):
{code}
 <exclusion>
    <groupId>*</groupId>
    <artifactId>*</artifactId>
  </exclusion>
{code}

Since the release POM is fully interpolated, it is going to contain all 
project's effective dependencies (including the transitive ones) at the top 
level. However, some of those dependencies may still have transitive 
dependencies, which have been explicitly excluded from the project. By applying 
a wildcard exclusion to each of those top-level dependencies will simply cut 
off the unwanted dependencies without affecting the good ones.

NB. Wildcard dependencies were introduced in Maven3, and in order to retain 
compatibility with Maven2, maven-release-plugin will probably need to make this 
functionality optional.
                
> prepare-with-pom : inherited dependencies exclusion are lost in 
> release-pom.xml
> -------------------------------------------------------------------------------
>
>                 Key: MRELEASE-543
>                 URL: https://jira.codehaus.org/browse/MRELEASE-543
>             Project: Maven Release Plugin
>          Issue Type: Bug
>          Components: prepare-with-pom
>    Affects Versions: 2.0
>         Environment: Maven 2.2.1
>            Reporter: Thomas Sauzedde
>         Attachments: sample-projects.tgz
>
>
> Like in the provided sample projects, I have the following scenario : 3 
> modules (sibling) with the following inheritage graph :
> grandfather  <=== father <=== child
> - grandfather (pom module) has
>     - a dependencyManagement block with some exclusions
>     - a pluginManagement block
> - father (pom module) adds a plugins block to configure the compiler plugin
> - child is a basic (empty) jar module
> when mvn release:prepare-with-pom is performed on "child" the checked-in 
> (svn) release-pom.xml has all the dependencies resolved BUT my exclusions 
> defined in "grandfather" are lost :-(
> To reproduce this with the provided sample projects : 
> - perform a mvn:install on grandfather & father
> - import "child" in your svn repo
> - change the scm block on "child" in order to checkout/in from your svn
> - perform a mvn release:prepare-with-pom
> You will see that in your tagged release-pom.xml the exclusions are lost.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to