Issue Details (XML | Word | Printable)

Key: MNG-3196
Type: New Feature New Feature
Status: Reopened Reopened
Priority: Major Major
Assignee: Unassigned
Reporter: Paul Gier
Votes: 16
Watchers: 15
Operations

If you were logged in you would be able to see more operations.
Maven 2 & 3

Allow exclusion of a certain transitive dependency across all direct dependencies.

Created: 07/Sep/07 09:40 AM   Updated: 08/Jul/09 04:21 PM
Component/s: Dependencies
Affects Version/s: 2.0.7
Fix Version/s: 3.x (to be reviewed)

Time Tracking:
Not Specified

Issue Links:
Related
 


 Description  « Hide

I would like to be able to put exludes at the top level of dependencies so that it can easily be excluded from all transitive dependencies, instead of just excluding it from a single dependency at a time. For example assume that project1 and project2 both have transitive dependencies on different versions of project-trans:

<dependencies>
  <exclusions>
    <exclusion>
      <groupId>com.stuff</groupId>
      <artifactId>project-trans</artifactId>
    </exclusion>
  </exclusions>
  <dependency>
    <groupId>com.stuff</groupId>
    <artifactId>project1</artifactId>
    <version>1.0</version>
  <dependency>
  <dependency>
    <groupId>com.stuff</groupId>
    <artifactId>project2</artifactId>
    <version>1.0</version>
  <dependency>
</dependencies>

In this example, the "project-trans" dependency would be exluded from both project1 and project2. It can be difficult to find all the locations of a transitively included dependency for a large project that has a large number of frequently changing dependencies.



Paul Gier added a comment - 07/Sep/07 09:42 AM

For consistency, this syntax for exclusion could also be added to the plugin dependency to resolve issue: MNG-2163


Brett Porter added a comment - 29/Oct/07 07:35 PM

I can't see the difference between this and MNG-1977 - please re-open and clarify if that's the case.


Paul Gier added a comment - 23/Jan/08 12:21 PM

I think this issue is more of a subset of MNG-1977 than a duplicate. Since MNG-1977 describes several issues related to transitive dependencies, it seems a bit broad to me. If it was already fixed, I would say that this is a duplicate. But the way it is now, I think keeping this issue open might provide an easier path to resolving this specific issue. If I have some time in the future I'll try to work on a patch for this issue, but I don't want to address everything in MNG-1977.


Charles Canning added a comment - 12/Nov/08 08:35 PM

A way to probably attempt this without changing model in the pom would be to add an exclusion scope. So, something like

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>exclusion</scope>
</dependency>

Not sure if this applies to the older bug or not.