当前位置: 首页 > wzjs >正文

20个中国风网站设计欣赏建设集团招工信息网站

20个中国风网站设计欣赏,建设集团招工信息网站,深圳建设发展有限公司,彬县网吧在 Maven 中排除依赖冲突主要有以下 5 种方法&#xff0c;结合具体场景说明操作步骤&#xff1a;⚠️ 一、基础排除法&#xff08;<exclusions>标签&#xff09; 适用场景&#xff1a;排除直接依赖中的传递性冲突包 示例&#xff1a;排除 spring-boot-starter-web 中的 T…

在 Maven 中排除依赖冲突主要有以下 5 种方法,结合具体场景说明操作步骤:


⚠️ 一、基础排除法(<exclusions>标签)

适用场景:排除直接依赖中的传递性冲突包
示例:排除 spring-boot-starter-web 中的 Tomcat 依赖

<dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-web</artifactId>  <exclusions>  <exclusion>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-tomcat</artifactId>  </exclusion>  </exclusions>  
</dependency>  

要点

  1. 无需指定被排除依赖的版本
  2. 仅作用于当前声明的依赖项

🧩 二、多层级依赖排除

适用场景:冲突由间接依赖(非直接引入)引起
示例:模块 A 依赖模块 B,而 B 传递了冲突库 hsqldb

<dependency>  <groupId>com.example</groupId>  <artifactId>module-a</artifactId>  <exclusions>  <!-- 排除模块A传递的hsqldb -->  <exclusion>  <groupId>org.hsqldb</groupId>  <artifactId>hsqldb</artifactId>  </exclusion>  </exclusions>  
</dependency>  

原理

  • 依赖树:A → B → hsqldb
  • 在 A 的依赖声明中排除 hsqldb 即可切断传递链

🔧 三、全局依赖管理(dependencyManagement

适用场景:统一管理多模块项目的依赖版本
示例:父 POM 强制所有子模块使用安全的 log4j 版本

<!-- 父pom.xml -->  
<dependencyManagement>  <dependencies>  <dependency>  <groupId>org.apache.logging.log4j</groupId>  <artifactId>log4j-core</artifactId>  <version>2.17.1</version> <!-- 安全版本 -->  </dependency>  </dependencies>  
</dependencyManagement>  

效果:子模块无需声明版本号,自动继承父 POM 的版本


🛡️ 四、高级排除技巧

1. 空包替换法(彻底排除)

场景:杜绝某依赖被任何途径引入(如高危漏洞库)
操作

  1. 部署空包到私服(如 log4j:log4j:1.0-empty
  2. 在顶层 POM 强制依赖空包:
<dependency>  <groupId>log4j</groupId>  <artifactId>log4j</artifactId>  <version>1.0-empty</version>  
</dependency>  

原理:Maven 依赖仲裁优先选择最短路径的空包版本

2. Scope 排除法

场景:排除运行时依赖但保留编译能力

<dependency>  <groupId>log4j</groupId>  <artifactId>log4j</artifactId>  <scope>provided</scope> <!-- 或 test -->  
</dependency>  

效果

  • provided:编译有效,不打包
  • test:仅测试有效,不打包

⚙️ 五、强制检查插件(maven-enforcer-plugin

场景:防止其他成员意外引入冲突依赖
配置:在父 POM 添加规则

<plugin>  <groupId>org.apache.maven.plugins</groupId>  <artifactId>maven-enforcer-plugin</artifactId>  <executions>  <execution>  <id>ban-conflict-lib</id>  <configuration>  <rules>  <bannedDependencies>  <excludes>  <exclude>com.alibaba:fastjson</exclude> <!-- 禁止引入组件 -->  </excludes>  <searchTransitive>true</searchTransitive> <!-- 检查传递依赖 -->  </bannedDependencies>  </rules>  </configuration>  </execution>  </executions>  
</plugin>  

效果:若有人引入 fastjson,构建直接失败


💡 排除依赖工具对比

方法适用场景优势局限性
<exclusions>简单直接依赖冲突精准排除单个依赖需手动定位冲突源
dependencyManagement多模块版本统一全局版本控制不适用于非版本冲突场景
空包替换彻底封杀高危依赖一劳永逸需私服权限,维护成本高
Enforcer 插件团队协作防误引入强制规范,提前拦截配置复杂

优先使用基础排除法,对团队协作项目推荐 dependencyManagement + Enforcer 插件组合
排查依赖树命令:mvn dependency:tree -Dincludes=groupId:artifactId

http://www.dtcms.com/wzjs/741827.html

相关文章:

  • 呼和浩特建设厅网站直播网站开发费
  • 经网站建设是什么经营范围微信公众号网站开发注意
  • 北京app手机网站制作公司网站建设价格
  • 建设高校网站的现实意义odoo网站建设
  • 阿里巴巴做网站营销有没有用电子商务网站建设与管理总结
  • 企业网站如何建设温州可以做驾校推广的网站
  • 网站开发个人工作室信息网站有哪些
  • 用什么做响应式网站春雨app直播免费看
  • 网站没有权重广州自助公司建网站企业
  • 杭州网站搜索排名网站推广优化如何做
  • 网站首屏高度用fullpage做的网站
  • 鹤壁做网站价格南京网站快速排名提升
  • 局域网内网站建设的步骤过程有没有电商设计的网站参考
  • 教育网站制作实训报告网站优化的方法有哪些
  • 网站模板加后台福州网站排名优化
  • 关于建设网站的报告广东个人备案网站内容
  • 软件开发费和网站建设集团网站设计方案
  • 做SEO用dede还是wordpress游戏优化软件
  • 北京城建设计集团网站外贸网站建设青岛
  • 邢台网站网页设计一等一网站建设
  • 番禺区pc端网站建设兔展在线制作网站
  • 在线教育网站建设方案org后缀的网站
  • 做企业网站需要什么广东新闻频道直播
  • 甘肃住房城乡建设厅网站首页wordpress退出
  • 广东省高校质量工程建设网站同心食品厂网站建设项目任务分解
  • 网站开发运营公司系统里看不到wordpress
  • 怎么查寻一个网站做的竞价免费网站设计定制
  • 衡水网站制作设计网络推广的几种主要方法
  • 设计接单子网站做排行榜的网站
  • 网站做管制户外刀具网站后台上传内容前台首页不显示