项目管理--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包的完整版:点击打开链接


===================================================================================
尽人事,听天命。我相信只有那些疯狂到自以为能改变世界的人才会真正改变世界。
坚持别人不能坚持的坚持,终将收获别人不能收获的收获。这就是我,一个纯粹想靠技术改变命运的人。



原创粉丝点击