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

企业名录搜索网站怎么在百度上发布信息广告

企业名录搜索网站,怎么在百度上发布信息广告,自己动手做衣服的网站,广州网络营销推广培训什么是依赖冲突 依赖冲突是指项目依赖的某一个jar包,有多个不同的版本,因而造成类包版本冲突 依赖冲突的原因 依赖冲突很经常是类包之间的间接依赖引起的。每个显式声明的类包都会依赖于一些其它的隐式类包,这些隐式的类包会被maven间接引…

什么是依赖冲突

依赖冲突是指项目依赖的某一个jar包,有多个不同的版本,因而造成类包版本冲突

依赖冲突的原因

依赖冲突很经常是类包之间的间接依赖引起的。每个显式声明的类包都会依赖于一些其它的隐式类包,这些隐式的类包会被maven间接引入进来,从而造成类包冲突

如何解决依赖冲突

首先查看产生依赖冲突的类jar,其次找出我们不想要的依赖类jar,手工将其排除在外就可以了。具体执行步骤如下

1、查看依赖冲突

a、通过dependency:tree是命令来检查版本冲突

mvn -Dverbose dependency:tree
1

当敲入上述命令时,控制台会出现形如下内容

[INFO] org.example:hello:jar:1.0-SNAPSHOT
[INFO] +- org.springframework:spring-context:jar:5.2.7.RELEASE:compile
[INFO] |  +- (org.springframework:spring-aop:jar:5.2.7.RELEASE:compile - omitted for conflict with 5.2.0.RELEASE)
[INFO] |  +- org.springframework:spring-beans:jar:5.2.7.RELEASE:compile
[INFO] |  |  \- (org.springframework:spring-core:jar:5.2.7.RELEASE:compile - omitted for duplicate)
[INFO] |  +- org.springframework:spring-core:jar:5.2.7.RELEASE:compile
[INFO] |  |  \- org.springframework:spring-jcl:jar:5.2.7.RELEASE:compile
[INFO] |  \- org.springframework:spring-expression:jar:5.2.7.RELEASE:compile
[INFO] |     \- (org.springframework:spring-core:jar:5.2.7.RELEASE:compile - omitted for duplicate)
[INFO] \- org.springframework:spring-aop:jar:5.2.0.RELEASE:compile
[INFO]    +- (org.springframework:spring-beans:jar:5.2.0.RELEASE:compile - omitted for conflict with 5.2.7.RELEASE)
[INFO]    \- (org.springframework:spring-core:jar:5.2.0.RELEASE:compile - omitted for conflict with 5.2.7.RELEASE)
123456789101112

其中omitted for duplicate表示有jar包被重复依赖,最后写着omitted for conflict with xxx的,说明和别的jar包版本冲突了,而该行的jar包不会被引入。比如上面有一行最后写着omitted for conflict with 5.2.7.RELEASE,表示spring-core 5.2.0版本不会被项目引用,而spring-core 5.2.7版本会被项目引用

b、如果是idea,可以安装maven helper插件来检查依赖冲突

maven helper插件安装成功,点开pom.xml会发现多了一个Dependency Analyzer视图,如下
Dependency Analyzer.png
上面按钮的图标含义如下

  • Conflicts(查看冲突)
  • All Dependencies as List(列表形式查看所有依赖)
  • All Dependencies as Tree(树形式查看所有依赖)

上图说明有3个jar存在冲突,点击冲突的jar,可以查看和哪个jar产生冲突,如下图
查看冲突.png

2、解决冲突

项目的pom.xml形如下

 <dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.7.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>5.2.0.RELEASE</version></dependency></dependencies>12345678910111213141516

通过查看依赖树,我们知道项目会引用5.2.7.RELEASE的spring core jar包,而不会引用5.2.0的jar包,如果我们想用5.2.0版本的spring core包,我们该如何做?

a、使用第一声明者优先原则

谁先定义的就用谁的传递依赖,即在pom.xml文件自上而下,先声明的jar坐标,就先引用该jar的传递依赖。因此我们如果要使用5.2.0版本的spring core包,我们可以改成如下声明

  <dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>5.2.0.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.7.RELEASE</version></dependency></dependencies>123456789101112131415

查看依赖树

[INFO] org.example:hello:jar:1.0-SNAPSHOT
[INFO] +- org.springframework:spring-aop:jar:5.2.0.RELEASE:compile
[INFO] |  +- org.springframework:spring-beans:jar:5.2.0.RELEASE:compile
[INFO] |  |  \- (org.springframework:spring-core:jar:5.2.0.RELEASE:compile - omitted for duplicate)
[INFO] |  \- org.springframework:spring-core:jar:5.2.0.RELEASE:compile
[INFO] |     \- org.springframework:spring-jcl:jar:5.2.0.RELEASE:compile
[INFO] \- org.springframework:spring-context:jar:5.2.7.RELEASE:compile
[INFO]    +- (org.springframework:spring-aop:jar:5.2.7.RELEASE:compile - omitted for conflict with 5.2.0.RELEASE)
[INFO]    +- (org.springframework:spring-beans:jar:5.2.7.RELEASE:compile - omitted for conflict with 5.2.0.RELEASE)
[INFO]    +- (org.springframework:spring-core:jar:5.2.7.RELEASE:compile - omitted for conflict with 5.2.0.RELEASE)
[INFO]    \- org.springframework:spring-expression:jar:5.2.7.RELEASE:compile
[INFO]       \- (org.springframework:spring-core:jar:5.2.7.RELEASE:compile - omitted for conflict with 5.2.0.RELEASE)12345678910111213

通过依赖树,我们可以看到项目已经引入5.2.0版本的spring core包

b、使用路径近者优先原则

即直接依赖级别高于传递依赖。因此我们可以在最先的pom.xml添加如下内容

 <dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.7.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>5.2.0.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>5.2.0.RELEASE</version></dependency></dependencies>
12345678910111213141516171819202122

路径近者优先.png通过上图可以看到项目引入是 spring core 5.2.0的包

c、排除依赖

排除依赖如果是idea,可以使用maven helper插件进行排除。点开pom.xml,切换到Dependency Analyzer视图,选择All Dependencies as Tree,点击要排除的jar,右键会出现Execlude选项,如下
去除依赖.png
它产生的效果和如下配置是一样

 <dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.7.RELEASE</version><exclusions><exclusion><artifactId>spring-core</artifactId><groupId>org.springframework</groupId></exclusion></exclusions></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>5.2.0.RELEASE</version></dependency></dependencies>123456789101112131415161718192021

查看依赖.png
通过上图可以看到项目引入是 spring core 5.2.0的包

4、版本锁定

使用dependencyManagement 进行版本锁定,dependencyManagement可以统一管理项目的版本号,确保应用的各个项目的依赖和版本一致。

如果我们项目中只想使用spring core 5.2.0的包,pom.xml可以改为如下

<dependencyManagement><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>5.2.0.RELEASE</version></dependency></dependencies></dependencyManagement><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.7.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>5.2.0.RELEASE</version></dependency></dependencies>12345678910111213141516171819202122232425

版本锁定.png
通过上图可以看到项目引入是 spring core 5.2.0的包

总结

综上就是maven如何排查依赖冲突以及解决方法,对于排查依赖个人比较推荐使用maven helper插件,至于解决依赖冲突个人推荐使用版本锁定的方法,此外dependencyManagement只是声明依赖,并不自动实现引入,因此子项目需要显示的声明需要用的依赖

http://www.ds6.com.cn/news/32508.html

相关文章:

  • 做网站免费百度热门搜索排行榜
  • 徐州市专业做网站的公司批量关键词排名查询工具
  • 咋做网站代码背景图线上平台推广方式
  • 天津网站建设公司企业建站流程
  • wordpress合并百度信息流优化
  • 64m vps 安装wordpress百度seo推广计划类型包括
  • 南京网站制作费用seo课程排行榜
  • 网上赚钱论坛重庆seo顾问
  • 企业网站被转做非法用途杭州百度推广代理商
  • 公司网站邮箱怎么看接收服务器类型搜索引擎免费登录入口
  • 专业做网站和小程序百度投放广告怎么收费
  • 肇庆网站制作软件宁波seo网络推广
  • 站点建设网站中国突然宣布一重磅消息
  • 公司建设网站的案例分析哈尔滨seo优化公司
  • 什么是网站程序整站seo教程
  • 用来做旅游攻略的网站西安百度推广代理商
  • 成都成华区两位区领导聊天记录seo需要懂代码吗
  • 视频网站前台怎么做网络推广和运营的区别
  • 梧州网站建设定制成都有实力的seo团队
  • html5商城网站网站排名优化制作
  • 上海疫情分布区域网站优化 推广
  • 做中澳原产地证的网站百度云手机app下载
  • 深圳市宝安区松岗人民医院网络优化工程师前景
  • 3d展示网站源码2024政治时政热点
  • 河南省人民政府网谷歌seo网站运营
  • 爱站网关键词搜索网上推广渠道有哪些
  • 河北省建设机械协会网站是真的吗网店推广方案范文
  • 做网站卖东西赚钱我是做推广的怎么找客户
  • 深圳龙岗区景点快速优化关键词排名
  • 广东省建设注册执业资格中心网站滕州seo