19

我想从一个依赖项中排除所有传递依赖项。在某些地方,我看到它建议为此使用通配符

<dependency>
  <groupId>myParentPackage</groupId>
  <artifactId>myParentProject</artifactId>
  <version>1.00.000</version>            
  <exclusions>
    <exclusion>
        <groupId>*</groupId>
        <artifactId>*</artifactId>
    </exclusion>
  </exclusions>
</dependency>

当我这样做时,我会收到警告:

'dependencies.dependency.exclusions.exclusion.groupId' for myParentPackage:myParentProject:jar with value '*' does not match a valid id pattern. @ line 146, column 30

声明本身是成功的:传递依赖在我的构建中确实被忽略了。

我还发现了一个旧的功能请求,它确实请求了这个功能

所以现在我不知道这是否是我不应该使用的已弃用功能,警告是否错误,或者该功能尚未完全实现(我使用的是 Maven 3.0.4)......有人知道更多吗?

4

3 回答 3

10

这是 Maven 3.2.1 中支持的功能 -请参阅发行说明中的​​“传递依赖排除”部分

于 2014-02-28T14:16:55.393 回答
3

我讨厌自己收到 Maven 警告。我见过通配符方法,但避免了它。运行一个mvn dependency:tree目标,发现属于相关工件的顶级依赖项并单独排除每个(希望列表不是那么大)。这是迄今为止解决这个问题的最安全的方法。

于 2013-05-06T17:18:05.000 回答
0

据我所知,这个功能还不存在。在您发送的功能请求中,您可以看到它的状态仍然是“未解决”。

于 2013-05-03T09:12:07.723 回答