Struts2与Spring的Maven依赖冲突

今天在用Maven集成Struts2+Spring+Hibernate时发现只要不在web模块中声明spring-web的依赖,就会报java.lang.NoClassDefFoundError: [Lorg/springframework/context/ApplicationContextInitializer;异常,站点无法启动。

对比了半天发现添加spring-web依赖后打包生成的文件少了一个spring-asm-3.0.5.RELEASE.jar文件,很是纳闷,再仔细看spring-context还有几个其他文件的版本号也是3.0.5,奇怪啊,我明明写了<springframework.version>4.2.3.RELEASE</springframework.version>啊。

分析了半天,发现对于Spring的整合,我只声明了spring-web和spring-orm的依赖,再去看spring的官方说明要求引入spring-context,一定是其他引用引入了旧版本的spring-context,找了一下果然发现struts2-spring-plugin这个引用引入了3.0.5.RELEASE版本的spring-context。。。

果断在最前面显试声明spring-context!

时间: 2024-08-19 14:20:33

Struts2与Spring的Maven依赖冲突的相关文章

如何快速的解决Maven依赖冲突

为什么会出现依赖冲突 首先要说明Maven的依赖管理,具体的可以参考这边 Maven学习--依赖管理 这篇文章,maven在依赖冲管理中有一下几个原则. 依赖是使用Maven坐标来定位的,而Maven坐标主要由GAV(groupId, artifactId, version)构成.如果两个相同的依赖包,如果groupId, artifactId, version不同,那么maven也认为这两个是不同的. 依赖会传递,A依赖了B,B依赖了C,那么A的依赖中就会出现B和C. Maven对同一个gro

elasticSearch+spring 整合 maven依赖详解

摘自:http://www.mayou18.com/detail/nTxPQSyu.html [Elasticsearch基础]elasticSearch+spring 整合 maven依赖详解 Maven依赖   <!-- elasticsearch package -->        <dependency>             <groupId>fr.pilato.spring</groupId>             <artifact

Struts2 整合Spring(Maven,注解版)

这两天正在试验Struts2与Spring框架的整合,和他们各自的“注解”.今天就总结一下这两个框架怎么用注解进行整合. 一,加入两者的依赖包,除了两者的必要依赖外,还需要导入struts2-spring-plugin.jar来完成两者的整合. <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version&g

IDEA 解决 Maven 依赖冲突的高能神器,这一篇够不够?

? 1.何为依赖冲突 Maven是个很好用的依赖管理工具,但是再好的东西也不是完美的.Maven的依赖机制会导致Jar包的冲突.举个例子,现在你的项目中,使用了两个Jar包,分别是A和B.现在A需要依赖另一个Jar包C,B也需要依赖C.但是A依赖的C的版本是1.0,B依赖的C的版本是2.0.这时候,Maven会将这1.0的C和2.0的C都下载到你的项目中,这样你的项目中就存在了不同版本的C,这时Maven会依据依赖路径最短优先原则,来决定使用哪个版本的Jar包,而另一个无用的Jar包则未被使用,

解决maven依赖冲突

今天新建了一个项目,初始化了一下,发现跑不起来. 报错信息 java.lang.ClassNotFoundException: org.mybatis.logging.LoggerFactory pom文件中有mybatis-plus-boot-starter 按道理来说是不应该出现这种情况的 上网搜了一下,发现各种各样的说法都有,没啥头绪. 冷静下来思考一下,虽然百度上各种各样的说法都有,但是归总一下,其实都是在说pom文件的依赖有问题. 所以我们应当看下pom文件中有没有依赖冲突. 下好ma

maven 依赖冲突的问题

如果原始系统的jarA依赖jarB1.0 而新引入的jarC依赖jarB2.0 导致系统启动报错,提示冲突,这时为了保证原始系统的稳定性, 在pom.xml文件中引入jarC时,需要exclude掉jarB2.0 如果原始系统依赖jarA1.0 这时为了使用新的功能需要使用jarA2.0,如果子系统B中使用了jarC1.0依赖A1.0,如果在子系统B中直接使用依赖jarA2.0,肯定会 报冲突,这时需要在pom.xml修改jarC1.0的引入代码,添加exclude掉jarA1.0,然后可以添加

Maven依赖冲突

1.短路优先 A-->B-->C-->X(jar) A-->D-->X(jar) 2.先声明先优先 如果路径长度相同,则谁先声明,先解析谁. pom.xml A B ==>导致最终依赖的c的版本是2.2 A.pom.xml C(2.2) B.pom.xml c(2.5)

【Spring Boot】Spring Boot之两种引入spring boot maven依赖的方式

一.方式一:spring-boot-starter-parent <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.1.RELEASE</version> <relativePath/> <!-- lookup paren

Spring Security 3.2.x与Spring 4.0.x的Maven依赖管理

原文链接: Spring Security with Maven原文日期: 2013年04月24日翻译日期: 2014年06月29日翻译人员: 铁锚 1. 概述 本文通过实例为您介绍怎样使用 Maven 管理 Spring Security 和 Spring 的依赖关系.最新的Spring Security公布版本号能够在 Maven Central仓库 中找到. 译者建议訪问MVNRespotory中org.springframework.security链接.本文是 使用Maven管理Spr