[
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