聊聊maven的pom.xml中的exclusions标签的作用

maven pom.xml的exclusions标签作用

项目中的例子

  <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>

解释exclusion标签

这个标签的作用是排除关联依赖的引入,因为maven的pom依赖其中有一点是将关联的依赖全都引入进来 ,

这个标签在这的作用就是 如果关联的依赖和引入的其他依赖可能存在冲突,

就必须将关联的依赖排除掉,所以就用这个标签。

另外这个+s的,大家应该也明白 ,就是可以包含多个吗!!!!

用exclusions来进行排除依赖

  • exclusions

但依赖调节并不解决所有问题,我们还需要exclusions来进行排除依赖。

例如这样一个情况,工程中引入了A,A依赖B,但是B的版本过旧。

此时可以使用exclusions排除该传递性依赖,并显示声明一个最新版本的B依赖。

比如这样

<dependency>
    <groupId>com.lowagie</groupId>
    <artifactId>itext</artifactId>
    <version>4.2.1</version>
    <exclusions>
        <exclusion>
            <artifactId>bcmail-jdk14</artifactId>
            <groupId>bouncycastle</groupId>
        </exclusion>
        <exclusion>
            <artifactId>bcprov-jdk14</artifactId>
            <groupId>bouncycastle</groupId>
        </exclusion>
        <exclusion>
            <artifactId>bctsp-jdk14</artifactId>
            <groupId>bouncycastle</groupId>
        </exclusion>
    </exclusions>
</dependency>

在比如若是使用zookeeper发现有log4j的冲突。

我们也可以使用这种方式进行排除

<dependency>
   <groupId>org.apache.zookeeper</groupId>
   <artifactId>zookeeper</artifactId>
   <version>3.5.4-beta</version>
   <exclusions>
    <exclusion>
     <artifactId>slf4j-log4j12</artifactId>
     <groupId>org.slf4j</groupId>
    </exclusion>
   </exclusions>
  </dependency>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • maven坐标Dependencies和Exclusions的使用

    目录 1.概念介绍 2.Dependencies (1)当一个项目A依赖另一个项目B时 (2)配置可选依赖的原因 (3)示例 3.Exclusions (1)当一个项目A依赖项目B (2)示例 4.maven的依赖调解有两大原则 5.maven的归类依赖 聊下maven Exclusions标签 1.概念介绍 Dependencies:是可选依赖(Optional Dependencies) Exclusions:是依赖排除(Dependency Exclusions) 2.Dependenci

  • 详解maven依赖冲突以及解决方法

    什么是依赖冲突 依赖冲突是指项目依赖的某一个jar包,有多个不同的版本,因而造成类包版本冲突 依赖冲突的原因 依赖冲突很经常是类包之间的间接依赖引起的.每个显式声明的类包都会依赖于一些其它的隐式类包,这些隐式的类包会被maven间接引入进来,从而造成类包冲突 如何解决依赖冲突 首先查看产生依赖冲突的类jar,其次找出我们不想要的依赖类jar,手工将其排除在外就可以了.具体执行步骤如下 1.查看依赖冲突 a.通过dependency:tree是命令来检查版本冲突 mvn -Dverbose dep

  • 关于Maven依赖冲突解决之exclusions

    目录 Maven依赖冲突解决之exclusions 1. 背景 2. 解决方式 场景 解决方式 Maven解决依赖冲突总结 实例分析 解决办法 命令分析 小试牛刀 Maven依赖冲突解决之exclusions 1. 背景 作为java生态下开发者,往往需要使用大量线程的第三方库,一般都是以jar包形式存在. maven作为事实上主流的jar包依赖管理工具,Idea和Eclipse都支持创建maven工程来管理jar包依赖. 使用maven进行jar包依赖管理时,maven会自行管理jar包及其依

  • 深入理解Maven的坐标与依赖

    在前边两节中,我们学习了Maven的基本概念以及何为Maven仓库,并且如何配置settings.xml文件等相关知识点.Maven的主要作用是可以帮助我们自动下载在pom.xml中配置添加的依赖.那么在本节中,我们将学习如何引入依赖. 知识点包括: Maven的坐标,Maven的依赖配置,依赖范围,传递性依赖,依赖调解,可选依赖,排除依赖,归类依赖和优化依赖 Maven的坐标 Maven的仓库中拥有着无数的构件,每一个构件都是一个jar或者war等文件,如果没有坐标,那么我们将无法唯一标识该构

  • 聊聊maven的pom.xml中的exclusions标签的作用

    maven pom.xml的exclusions标签作用 项目中的例子 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupI

  • maven的pom.xml中profiles的作用详解

    目录 1.profiles是什么?有什么作用 2.如何配置 3.区别构建发布包 maven多环境profiles参数切换 项目结构图 1.profiles是什么?有什么作用 在maven构建的项目都存在一个pom.xml的项目对象模型配置文件,用于约束项目(如:jar包管理.构建管理等).profiles是pom.xml中的一个配置项. 我们在开发项目时一般都会区分线上环境和测试环境,这两个环境需要切换以适应不同的环境需求 正式环境的配置,一般放置于src/main/resources下,而测试

  • Maven之pom.xml文件中的Build配置解析

    目录 前言 正文 mave的相关插件 pom.xml中的build标签 1. pom.xml中的两种build 2. Profile Build和Project Build的共有元素 3. Project Build特有的<-Directory> 4. Project Build特有的 Maven常用配置 pom.xml基础配置 插件配置 编译插件 测试插件 测试报告插件 eclipse插件 war包插件 tomcat插件 插件命令 总结 前言 在日常的开发中,我们经常使用maven来管理和构

  • SpringBoot 如何读取pom.xml中的值

    目录 如何读取pom.xml中的值 xxx.properties读取pom.xml 读取xxx.properties文件 SpringBoot读取pom配置报错 报错原因 解决方法 如何读取pom.xml中的值 首先,Java代码中是无法直接读取pom.xml中的内容的,需要先把值转到xxx.properties中,再通过程序读取xxx.properties中对应的值. xxx.properties读取pom.xml 1.xxx.properties中 以pom.xml中的version标签为例

  • 关于pom.xml中maven无法下载springcloud包问题

    **代码环境:**spring boot 2.1.2,springcloud :Greenwich.RELEASE **问题描述:**spring-cloud-starter-feign,spring-cloud-starter-eureka 一直无法下载,maven仓库中包路径显示为unknown pom.xml内容: <version.spring-cloud>Greenwich.RELEASE</version.spring-cloud> <dependency>

  • 基于Maven的pom.xml文件详解

    如下所示: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd "> <!-- 父项

  • 详解 maven的pom.xml用<exclusion>解决版本问题

    详解 maven的pom.xml用<exclusion>解决版本问题 用maven管理库依赖,有个好处就是连同库的依赖的全部jar文件一起下载,免去手工添加的麻烦,但同时也带来了同一个jar会被下载了不同版本的问题,好在pom的配置里面允许用<exclusion>来排除一些不需要同时下载的依赖jar . 比如配置struts-core,它会同时下载javassist和asm相关的jar,但版本又不够新,这时可以排除它们: <!-- Struts2 --> <dep

  • Mybatis sqlMapConfig.xml中的mappers标签使用

    目录 sqlMapConfig.xml中的mappers标签 mappers(映射配置) 1.1:通过resource加载单个映射文件 1.2:通过mapper接口加载单个映射文件 1.3:批量加载mapper(推荐使用) sqlmapconfig核心标签说明以及配置 配置项详解 配置示例 sqlMapConfig.xml中的mappers标签 mappers(映射配置) 1.1:通过resource加载单个映射文件 < !– 加载映射文件 –> < mappers> < !

  • Maven配置文件pom.xml详解

    什么是POM? POM是项目对象模型(Project Object Model)的简称,它是Maven项目中的文件,使用XML表示,名称叫做pom.xml.在Maven中,当谈到Project的时候,不仅仅是一堆包含代码的文件.一个Project往往包含一个配置文件,包括了与开发者有关的,缺陷跟踪系统,组织与许可,项目的URL,项目依赖,以及其他.它包含了所有与这个项目相关的东西.事实上,在Maven世界中,project可以什么都没有,甚至没有代码,但是必须包含pom.xml文件. 概览 下面

  • 基于Maven pom文件中属性变量总结

    目录 Maven pom文件属性变量总结 1.内置属性 2.POM属性 3.自定义属性 Maven pom变量定义 定义变量并赋值 Maven pom文件属性变量总结 1.内置属性 ${basedir}表示当前项目根目录 ${version}表示当前项目版本 2.POM属性 ${project.artifactId} 等价于元素的值 个人理解,本质上每个标签底层是通过对象的引用实现,也同样存在继承特性(仅仅是个人理解,供参考). 以此类推,可以发现很多这一类的属性定义. 类似地 ${projec

随机推荐