项目管理--maven浅析《二》之管理SSH项目整合开发
2017-12-02 10:10
295 查看
整合SSH框架
由上一篇文章我们可以知道,当我们导入了struts2-core包后,struts2框架所需要的jar包都会被导入,这叫依赖传递。那么问题就来了,当我们在做框架整合开发时,需要导入好多的jar包,此时就难免会出现依赖传递进来了两个相同jar包的不同版本,所以我们首当其冲的就要解决依赖版本冲突问题。
解决依赖版本冲突问题有以下四个原则:
a、第一声明优先原则
配置文件的顺序的调换以下
b、路径最近者优先原则
自己添加所需要的jar包版本
c、排除原则
如果没有<exclusions>片段,根据第一声明原则,spring-beans的版本应为:spring-beans-3.0.5
但是添加<exclusions>代码段就意味着:依赖于struts2-spring-plugin-2.3.24jar包的spring-beans-3.0.5jar包无效。
d、版本锁定原则
以上是解决版本冲突的四种方法,但是在项目开发中,我们是不可能每次都把所需jar包一个个添加的,只需要整理一份,后边使用时拷贝就行,开发过程中如果需要到别的jar包,再添加。但是为了个人发展还是需要大致了解每个jar包的作用。
maven管理SSH框架整合开发jar包的完整版:点击打开链接
===================================================================================
尽人事,听天命。我相信只有那些疯狂到自以为能改变世界的人才会真正改变世界。
坚持别人不能坚持的坚持,终将收获别人不能收获的收获。这就是我,一个纯粹想靠技术改变命运的人。
由上一篇文章我们可以知道,当我们导入了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包的完整版:点击打开链接
===================================================================================
尽人事,听天命。我相信只有那些疯狂到自以为能改变世界的人才会真正改变世界。
坚持别人不能坚持的坚持,终将收获别人不能收获的收获。这就是我,一个纯粹想靠技术改变命运的人。
相关文章推荐
- 项目管理--maven浅析《三》之分模块管理SSH项目
- Maven管理SSH整合开发jar包
- intellij IDEA开发工具项目maven管理
- Maven项目管理实战(五)--集成SSH
- 转】[1.0.2] 详解基于maven管理-scala开发的spark项目开发环境的搭建与测试
- SSH整合开发实例:用户管理系统
- SSH整合---使用Maven依赖管理&构建
- 基于IdeaIDE的ssm整合框架的maven管理项目,利用映射自动生成dao层,pojo层,mappers层
- 基于IdeaIDE的ssm整合框架的maven管理项目,利用映射自动生成dao层,pojo层,mappers层
- SSH项目开发自定义带泛型DaoSupport<T>类以及用户管理UserinfDao类
- JAVAWEB开发之权限管理(三)——shiro与企业项目整合开发(基于Spring)
- 05(maven+SSH)网上商城项目实战之spring mybatis整合
- intellij IDEA开发工具项目maven管理
- 房地产开发项目管理浅析
- 使用Intellij Idea创建一个maven的SSH整合的项目(一)!
- 基于IdeaIDE的ssm整合框架的maven管理项目,利用映射自动生成dao层,pojo层,mappers层
- 基于IdeaIDE的ssm整合框架的maven管理项目,利用映射自动生成dao层,pojo层,mappers层
- SSH项目开发里用maven的好处
- JAVAEE——SSH项目实战06:统计信息管理、Spring注解开发和EasyUI
- intellij 创建java web项目(maven管理的SSH)