0

排除关键字在maven中做了什么。

如果依赖项(X)依赖于依赖项(Y),则在模块中。在父 pom 中,包含的 Y 版本是 0.1,但 X 想使用 Y 的 0.9 版本。在这种情况下,排除对 x 有用。

如果 X 添加排除 Y,是否意味着 X 将不包含 Y 本身可用但将包含 Y 本身所需的版本(根据其 pom 文件)。

4

1 回答 1

1

排除用于排除传递依赖,例如

<dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>3.0.0.RELEASE</version>
      <scope>runtime</scope>
      <exclusions>
         <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
         </exclusion>
      </exclusions>
</dependency>

在这个例子中,我们在项目中包含了 spring-context.jar,但我们不希望它使用 commons-logging.jar,因为我们想使用 slf4j。

至于“包含的 Y 的父 pom 版本是 0.1,但 X 想使用 Y 的 0.9 版本”,将 0.9 版本添加到 X pom 就足够了,它将覆盖父版本的版本

于 2013-06-27T08:57:32.533 回答