0

'Dependency1' transitively pulls 'dependency2' and I would like to manage 'dependency2' version in my project.

what version of 'dependency2' will be pulled in by project if I have both 'dependency1' and 'dependency2'in dependency management section in parent pom and just 'dependency1' child pom of the project?

something like this:

ParentPOM

<dependencyManagement>
  <dependencies>

        <dependency>
          <groupId> groupId </<groupId>
          <artifactId> artifact1 </artifactId>
          <version> version1 </version>
        </dependency>

        <dependency>
          <groupId> groupId </<groupId>
          <artifactId> artifact2 </artifactId>
          <version> version2 </version>
        </dependency>

  <dependencies>
<dependencyManagement>

ChildPOM

<dependencies>
   <dependency>
       <groupId> groupId1 </<groupId>
          <artifactId> artifact1 </artifactId>
          <version> version1 </version>
       </dependency>
  <dependencies>
user1772643
  • 615
  • 3
  • 11
  • 23

1 Answers1

1

You have to exclude transitive dependency from redefined artifact.

Parent pom.xml:

<dependencyManagement>
  <dependencies>

        <dependency>
          <groupId> groupId </<groupId>
          <artifactId> artifact1 </artifactId>
          <version>artifact1</version>
        </dependency>

        <dependency>
          <groupId> groupId </<groupId>
          <artifactId> artifact2 </artifactId>
          <version> version2 </version>
        </dependency>

  <dependencies>
<dependencyManagement>

Child pom.xml:

<dependencies>
   <dependency>
       <groupId> groupId1 </<groupId>
          <artifactId> artifact1 </artifactId>
          <version> version1 </version>
          <exclusions>
            <exclude>
              <groupId>groupId</groupId>
              <artifactId>artifact2</artifactId>
            </exclude>
          </exclusions>
       </dependency>
  <dependencies>
Arek
  • 3,106
  • 3
  • 23
  • 32