maven可选依赖(Optional Dependencies)和依赖排除(Dependency Exclusions)
在maven的依赖管理中,有两种方式可以对依赖关系进行,分别是 可选依赖(Optional Dependencies)以及依赖排除(Dependency Exclusions)。
1、可选依赖(Optional Dependencies)
optional标签可以防止将devtools依赖传递到其他模块,当开发者将应用打包运行之后,devtools会被自动禁用。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>2.1.2.RELEASE</version>
<optional>true</optional>
</dependency>
2、依赖排除(Dependency Exclusions)
下面以一个例子来讲解一下以来排除的使用。
想把springboot项目的日志实现改为log4j2:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
而springboot默认的日志实现为logback,发现pom.xml中的很多starter都包含spring-boot-starter-logging:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
<version>1.5.2.RELEASE</version>
</dependency>
两个同时存在会有问题,比如报:
解决方法:使用依赖排除,将springboot默认的loggingjar排除,然后才能将日志实现改为log4j2。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
还没有评论,来说两句吧...