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

小程序开发公司哪家好?哪家最好?seo 推广怎么做

小程序开发公司哪家好?哪家最好?,seo 推广怎么做,wordpress tag页,在本地做的网站上传到空间之后_刷新就跳到本地的网址怎么办什么是依赖冲突 依赖冲突是指项目依赖的某一个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.dt0577.cn/news/29242.html

相关文章:

  • 佛山企业做网站网推接单平台有哪些
  • 做视频剪辑接私活的网站上海高端网站定制
  • 网站开发和嵌入式开发哪个新网站推广最直接的方法
  • 设计师交流网站外包接单平台
  • 乐清建网站哪家强交换链接平台
  • 深圳网站建设微信开发百度推广点击一次多少钱
  • 建立企业营销网站主要包括哪些内容站内免费推广有哪些
  • dedecms做的系统_网站主页是哪一个文件app注册推广团队
  • 六安网站建设培训整合营销的特点有哪些
  • 摄影网站有哪些功能百度接单平台
  • 融资网站建设今日的最新消息
  • 深圳全网推广正规专业公司seo网站运营
  • 专业网站定制价格深圳关键词优化软件
  • 房产网站的建设廊坊网站建设优化
  • 响应式网站一般做几个尺寸佛山竞价账户托管
  • 织梦cms建站网站开发流程的8个步骤
  • 网站开发经验教训贴吧高级搜索
  • 辛集市住房和城乡建设厅网站京津冀协同发展
  • 盐城网站开发基本流程高手优化网站
  • 四川宜宾建设局官方网站手机百度app免费下载
  • 美橙网站建设2024年8月爆发新的大流行病毒吗
  • icp网站备案如何制作一个网页页面
  • 做衣服招临工在什么网站找近一周热点新闻
  • 申请自助建站进行网络推广
  • 网站开发案例pdf百度地址如何设置门店地址
  • 中太建设集团官方网站网页设计效果图及代码
  • 推广思路及执行方案广州seo公司如何
  • 新都网站建设怎么优化网站关键词排名
  • 云阳县城乡建设委员会门户网站百度知道首页登录入口
  • 个人网页制作设计图深圳seo关键词优化