我如何向maven指出一个依赖项提供另一个依赖项?

时间:2014-08-21 15:09:09

标签: maven guava

在版本11.0.2之后,Google的guava库转换为Java 6.幸运的是,对于我们这些坚持使用Java 5的人来说,他们还发布了一个" guava-jdk5"工件。

不幸的是,我的一些依赖项传递了番石榴11.0.2。这使我的项目包含guava-jdk5和guava。

通常情况下,当我有相互冲突的版本时,我可以使用" dependencymanagement"标记以指示要引入的版本。但由于这些是两个不同的工件,我不明白如何执行此操作。最后我想告诉maven,guava和guava-jdk5是相同的工件,我希望17.7版本的guava-jdk5成为使用的版本。我该怎么做?

谢谢!

1 个答案:

答案 0 :(得分:3)

一种简单的方法是使用链接中的dependency exclusion简介:

<project>
  ...
  <dependencies>
    <dependency>
      <groupId>sample.ProjectA</groupId>
      <artifactId>Project-A</artifactId>
      <version>1.0</version>
      <scope>compile</scope>
      <exclusions>
        <exclusion>  <!-- declare the exclusion here -->
          <groupId>sample.ProjectB</groupId>
          <artifactId>Project-B</artifactId>
        </exclusion>
      </exclusions> 
    </dependency>
  </dependencies>
</project>