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