排除关键字在maven中做了什么。
如果依赖项(X)依赖于依赖项(Y),则在模块中。在父 pom 中,包含的 Y 版本是 0.1,但 X 想使用 Y 的 0.9 版本。在这种情况下,排除对 x 有用。
如果 X 添加排除 Y,是否意味着 X 将不包含 Y 本身可用但将包含 Y 本身所需的版本(根据其 pom 文件)。
排除关键字在maven中做了什么。
如果依赖项(X)依赖于依赖项(Y),则在模块中。在父 pom 中,包含的 Y 版本是 0.1,但 X 想使用 Y 的 0.9 版本。在这种情况下,排除对 x 有用。
如果 X 添加排除 Y,是否意味着 X 将不包含 Y 本身可用但将包含 Y 本身所需的版本(根据其 pom 文件)。
排除用于排除传递依赖,例如
<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 就足够了,它将覆盖父版本的版本