Maven
  1. Maven
  2. MNG-3196

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

    Details

    • Type: New Feature New Feature
    • Status: Closed
    • Priority: Major Major
    • Resolution: Incomplete
    • Affects Version/s: 2.0.7
    • Fix Version/s: None
    • Component/s: Dependencies
    • Labels:
      None

      Description

      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.

        Issue Links

          Activity

          Paul Gier created issue -
          Paul Gier made changes -
          Field Original Value New Value
          Link This issue is related to MNG-2163 [ MNG-2163 ]
          Paul Gier made changes -
          Link This issue is related to MNG-1977 [ MNG-1977 ]
          Brett Porter made changes -
          Status Open [ 1 ] Closed [ 6 ]
          Resolution Duplicate [ 3 ]
          Assignee Brett Porter [ brettporter ]
          Paul Gier made changes -
          Status Closed [ 6 ] Reopened [ 4 ]
          Resolution Duplicate [ 3 ]
          Brian Fox made changes -
          Fix Version/s 2.1 [ 13142 ]
          Brett Porter made changes -
          Assignee Brett Porter [ brettporter ]
          Jason van Zyl made changes -
          Fix Version/s 3.0 [ 13142 ]
          Fix Version/s 3.x [ 13145 ]
          Paul Gier made changes -
          Description 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.
          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:

          {code:xml}
          <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>
          {code}

          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.
          Jason van Zyl made changes -
          Status Reopened [ 4 ] Closed [ 6 ]
          Resolution Incomplete [ 4 ]
          Paul Benedict made changes -
          Fix Version/s Issues to be reviewed for 3.x [ 13145 ]
          Mark Thomas made changes -
          Project Import Sun Apr 05 08:49:45 UTC 2015 [ 1428223785911 ]
          Mark Thomas made changes -
          Workflow jira [ 12713658 ] Default workflow, editable Closed status [ 12753431 ]
          Mark Thomas made changes -
          Project Import Sun Apr 05 21:45:26 UTC 2015 [ 1428270326204 ]
          Mark Thomas made changes -
          Workflow jira [ 12950465 ] Default workflow, editable Closed status [ 12986689 ]

            People

            • Assignee:
              Unassigned
              Reporter:
              Paul Gier
            • Votes:
              31 Vote for this issue
              Watchers:
              24 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development