如何简化maven pom中多个依赖项的相同排除

时间:2015-05-18 21:36:42

标签: eclipse maven

我的pom中有几个依赖项,它们会引入一个不需要的jar,因此对它们设置相同的排除:

<dependencies>
  <dependency>
    <groupId>some.group</groupId>
    <artifactId>some-artifact-1</artifactId>
    <version>1</version>
    <exclusions>
      <exclusion>
        <groupId>annoying.group</groupId>
        <artifactId>unwanted-artifact</artifactId>
      </exclusion>
    </exclusions>
  </dependency>
  <dependency>
    <groupId>some.other.group</groupId>
    <artifactId>some-artifact-2</artifactId>
    <version>1</version>
    <exclusions>
      <exclusion>
        <groupId>annoying.group</groupId>
        <artifactId>unwanted-artifact</artifactId>
      </exclusion>
    </exclusions>
  </dependency>
  <dependency>
    <groupId>another.group</groupId>
    <artifactId>some-artifact-3</artifactId>
    <version>1</version>
    <exclusions>
      <exclusion>
        <groupId>annoying.group</groupId>
        <artifactId>unwanted-artifact</artifactId>
      </exclusion>
    </exclusions>
  </dependency>
  .
  .
  .
<dependencies>

问题是我的poms有几十个依赖项,所以可能有更多的东西拉入不需要的jar。我不确定如何辨别那些没有从那些不受欢迎的依赖中获取依赖关系的依赖关系。

我现在的工作流程是:

  1. 查看我的pom并在看起来的依赖项上添加排除,就像它们可能需要它一样(从工件和组ID判断)。
  2. 确认jar不再位于Eclipse项目的Maven Dependencies列表中
  3. 添加更多排除项,直到jar已经消失为止。
  4. 痛苦地查看我排除的每个依赖关系并关闭排除项以确认是否确实需要排除。
  5. 我的问题是:有更好的方法吗?有没有办法在我的pom中设置一般排除,所以我不必一遍又一遍地重复相同的排除?或者是否有更好的工作流程来排除这个不需要的jar?

    我正在使用Maven 3.0.4

1 个答案:

答案 0 :(得分:2)

可悲的是,没有办法避免这种情况。 “全球”依赖性排除已被讨论但从未实施过。