解决 Maven 依赖冲突?

Resolving Maven dependency conflicts?

鉴于我在 Eclipse Mars.1 中使用 m2e 插件关注 pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>de.mytools</groupId>
  <artifactId>my-tool</artifactId>
  <version>1.1.0</version>
  <properties>
      <jmeter-version>2.13</jmeter-version>
  </properties>
  <dependencies>
      <dependency>
          <groupId>org.apache.jmeter</groupId>
          <artifactId>jorphan</artifactId>
          <version>${jmeter-version}</version>
      </dependency>
      <dependency>
          <groupId>org.apache.jmeter</groupId>
          <artifactId>ApacheJMeter_components</artifactId>
          <version>${jmeter-version}</version>
      </dependency>
      <dependency>
          <groupId>org.apache.jmeter</groupId>
          <artifactId>ApacheJMeter_core</artifactId>
          <version>${jmeter-version}</version>
      </dependency>
      <dependency>
          <groupId>org.apache.jmeter</groupId>
          <artifactId>jorphan</artifactId>
          <version>${jmeter-version}</version>
      </dependency>
      <dependency>
          <groupId>org.apache.jmeter</groupId>
          <artifactId>ApacheJMeter_java</artifactId>
          <version>${jmeter-version}</version>
      </dependency>
      <dependency>
          <groupId>org.apache.commons</groupId>
          <artifactId>commons-lang3</artifactId>
          <version>3.4</version>
      </dependency>
  </dependencies>
</project>

如果我更新 Maven 依赖项,它们都存在。但是,如果我检查依赖关系层次结构,我会发现版本之间存在大量冲突,请参见屏幕截图。我该如何解决?

经过搜索,我发现这是 org.apache.jorphan:2.13 的 POM 中的错误。详情请看这个link:https://bz.apache.org/bugzilla/show_bug.cgi?id=57734

作为解决方法,以下带排除项的 POM 适用于我的情况:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>mygroupid</groupId>
  <artifactId>myartifactid</artifactId>
  <version>1.1.0</version>
  <properties>
      <jmeter.version>2.13</jmeter.version>
  </properties>
  <dependencies>
      <dependency>
          <groupId>org.apache.commons</groupId>
          <artifactId>commons-lang3</artifactId>
          <version>3.4</version>
      </dependency>
      <dependency>
          <groupId>org.apache.jmeter</groupId>
          <artifactId>jorphan</artifactId>
          <version>${jmeter.version}</version>
          <exclusions>
            <exclusion>
                <groupId>commons-math3</groupId>
                <artifactId>commons-math3</artifactId>
            </exclusion>
            <exclusion>
                <groupId>commons-pool2</groupId>
                <artifactId>commons-pool2</artifactId>
            </exclusion>
          </exclusions>
      </dependency>
      <dependency>
          <groupId>org.apache.jmeter</groupId>
          <artifactId>ApacheJMeter_java</artifactId>
          <version>${jmeter.version}</version>
          <exclusions>
            <exclusion>
                <groupId>commons-math3</groupId>
                <artifactId>commons-math3</artifactId>
            </exclusion>
            <exclusion>
                <groupId>commons-pool2</groupId>
                <artifactId>commons-pool2</artifactId>
            </exclusion>
          </exclusions>
      </dependency>
  </dependencies>
</project>