您的位置:首页 > 其它

项目管理--maven浅析《二》之管理SSH项目整合开发

2017-12-02 10:10 295 查看
整合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
4000
>
<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包的完整版:点击打开链接

===================================================================================
尽人事,听天命。我相信只有那些疯狂到自以为能改变世界的人才会真正改变世界。

坚持别人不能坚持的坚持,终将收获别人不能收获的收获。这就是我,一个纯粹想靠技术改变命运的人。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: