项目管理--maven浅析《二》之管理SSH项目整合开发
来源:互联网 发布:淘宝商家怎么进天猫 编辑:程序博客网 时间:2024/06/06 12:22
整合SSH框架
由上一篇文章我们可以知道,当我们导入了struts2-core包后,struts2框架所需要的jar包都会被导入,这叫依赖传递。那么问题就来了,当我们在做框架整合开发时,需要导入好多的jar包,此时就难免会出现依赖传递进来了两个相同jar包的不同版本,所以我们首当其冲的就要解决依赖版本冲突问题。
解决依赖版本冲突问题有以下四个原则:
a、第一声明优先原则
<!-- spring-beans-4.2.4 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.2.4.RELEASE</version> </dependency>
<!-- spring-beans-3.0.5 --> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-spring-plugin</artifactId> <version>2.3.24</version> </dependency>此时项目中所引入的商品spring-beans的版本为:spring-beans-4.2.4
配置文件的顺序的调换以下
b、路径最近者优先原则
自己添加所需要的jar包版本
<!-- spring-bean-4.2.4 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>4.2.4.RELEASE</version> </dependency>既然两个依赖版本会出现冲突问题,那么我就自己定义该jar包的版本
c、排除原则
<!-- spring-bean-3.0.5 --><dependency><groupId>org.apache.struts</groupId><artifactId>struts2-spring-plugin</artifactId><version>2.3.24</version><exclusions><exclusion><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId></exclusion></exclusions></dependency><!-- spring-bean-4.2.4 --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.2.4.RELEASE</version></dependency>
如果没有<exclusions>片段,根据第一声明原则,spring-beans的版本应为:spring-beans-3.0.5
但是添加<exclusions>代码段就意味着:依赖于struts2-spring-plugin-2.3.24jar包的spring-beans-3.0.5jar包无效。
d、版本锁定原则
<!-- 锁定版本号 --><properties><spring.version>4.2.4.RELEASE</spring.version><hibernate.version>5.0.7.Final</hibernate.version><struts.version>2.5.13</struts.version></properties>
<dependencyManagement><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency></dependencyManagement>${spring.version}就是EL表达式的写法
以上是解决版本冲突的四种方法,但是在项目开发中,我们是不可能每次都把所需jar包一个个添加的,只需要整理一份,后边使用时拷贝就行,开发过程中如果需要到别的jar包,再添加。但是为了个人发展还是需要大致了解每个jar包的作用。
maven管理SSH框架整合开发jar包的完整版:点击打开链接
===================================================================================
尽人事,听天命。我相信只有那些疯狂到自以为能改变世界的人才会真正改变世界。
坚持别人不能坚持的坚持,终将收获别人不能收获的收获。这就是我,一个纯粹想靠技术改变命运的人。
阅读全文
0 0
- 项目管理--maven浅析《二》之管理SSH项目整合开发
- 项目管理--maven浅析《三》之分模块管理SSH项目
- 项目管理--maven浅析《一》之开发流程及常用命令
- Maven管理SSH整合开发jar包
- 项目管理--maven浅析《四》之私服(Nexus)
- Maven整合SSH项目
- Maven项目管理实战(五)--集成SSH
- 项目总结之项目整合管理
- PMP--项目整合管理(二)
- 房地产开发项目管理浅析
- SSH框架整合的MAVEN项目之配置文件整合
- Maven项目管理实战(二)--pom.xml
- 项目管理利器—maven(二)
- 项目整合管理
- 项目整合管理
- 项目整合管理
- 项目整合管理笔记
- 项目整合知识管理
- 如何才能成为超级人类,驯服人工智能?
- 改变你人生的,也许只是一个瞬间—顶级互联网公司工作方法
- 闲谈数学与军事之二
- SpringMVC @RestControllerAdvice Shiro 学习链接 人人权限系统 参考
- 斯坦福大学深度学习公开课cs231n学习笔记(3)最优化方法:梯度下降
- 项目管理--maven浅析《二》之管理SSH项目整合开发
- 二进制时间-LintCode
- 现在的智能插座技术
- (一)java基础篇笔记库(14)
- 一个组件的识别和开发过程(持续更新)
- 评价成绩
- 5-1 继承与派生
- 学习资源地址汇总
- C++实验二