Maven 整合SSH框架
1. 传递依赖冲突
1.1 传递依赖:A(项目)依赖B,B依赖C(1.1版本),B是A的直接依赖,C是A的传递依赖;
A(项目)又依赖D,D依赖C(1.2版本),此时,C有两个版本,产生冲突;
1.2 Maven 的调解原则
- 第一声明者优先原则: 谁先定义,就用谁的传递依赖;
- 路径近者优先原则: 直接依赖级别高于传递依赖;
1.3 排除依赖


1.4 版本锁定(推荐)

2. 整合SSH框架
2.1 SSH 配置文件加载过程

3. 项目拆分
3.1 对现在已有 maven ssh 项目进行拆分,拆分思路: 将DAO层代码和配置文件全部提取到一个表现上独立
的工程中;另外,也将 service, action 拆分;
- ssh-parent(父工程)
- ssh-dao(子模块)
- ssh-service
- ssh-web
3.2 创建父工程
Maven Project- 包的类型:
pom - 父工程目录结构:只有 pom.xml,父工程不进行编码;
- 项目需要的依赖信息,在父工程中定义,子模块继承;
- 将各个子模块聚合到一起;


3.2.1 将父工程发布到本地仓库(Maven install)
- service,dao过程也会发布到本地仓库,如果本地仓库中没有父工程,发布的 service 工程会报错;
3.3 创建子模块 ssh-dao
Maven Module- 包的类型:
jar - 包含dao层代码和配置文件
- 将spring的配置文件applicationContext.xml进行拆分:
applicationContext-basic.xml: 存放dataSource,sessionFactory和事务管理的配置;applicationContext-dao.xml: 存放dao对象的配置;
- 发布到本地仓库:
maven install;
3.4 创建子模块 ssh-service
- 在service工程 pom.xml 文件中添加 ssh-dao 的依赖;

3.5 创建子模块 ssh-web
- 包的类型:
war,因为需要处理页面; - 需要导入 struts.xml 配置文件;
- 需要导入 web.xml 配置文件以及页面;
- "classpath:applicationContext-.xml"
3.6 单元测试
classpath:spring/applicationContext-*.xml: 加载本项目中的配置文件;classpath*:spring/applicationContext-*.xml: 既要加载本项目中配置文件,也要加载jar包中配置文件
3.7 传递依赖范围


3.8 运行
- 方式一:运行父工程,父工程将各个子模块聚合到一起; 将 ssh-web 项目打成war包发布到 tomcat;
- 方式二:直接运行 ssh-web 项目;
- 方式三:自己手动部署到 tomcat 上;
参考资料
Maven 整合SSH框架的更多相关文章
- maven学习记录三——maven整合ssh框架
6 整合ssh框架 6.1 依赖传递 只添加了一个struts2-core依赖,发现项目中出现了很多jar, 这种情况 叫 依赖传递 6.2 依赖版本冲突的解决 1. 第 ...
- maven整合ssh框架笔记
具体工程会上传文件sshpro <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:x ...
- Maven 整合 SSH 框架
前面的一系列文章中,我们总结了三大框架:Struts2,Hibernate,Spring 的基本知识.本篇就姑且尝试着使用 Maven 这个项目构建工具来将这三个框架整合一起.说到这里,如果有对 Ma ...
- 使用 IDEA和Maven 整合SSH框架
1.创建web工程 一路next 下去就行.完成后,IDEA会自动构建maven工程. 2.创建如下项目结构 需要将 java文件夹设置为SourcesRoot目录,否则无法创建package 设置操 ...
- Maven整合SSH框架的所有依赖和插件(记录下来,省的以后再写)
JDK:1.8 Tomcat:7 Maven:3.6.1 调了一个小时,终于没错误了,总结了一个规律,如果在用Tomcat插件启动项目时报错,显示如:org.apache.tomcat.util.bc ...
- Maven 整合SSH框架之pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- 使用IDEA完成maven整合SSH框架时抛出Hibernate : Mapping (RESOURCE) not found
切入主题,看看今天的错误是如何发生的: 首先这是我的项目路径,java 是 Sources Root , resources 是 Resources Root ,放了所需要的配置文件,其中 Hiber ...
- Maven项目整合SSH框架
---------------------siwuxie095 Maven 项目整合 SSH 框架 创建 ...
- maven项目ssh框架的整合
1.环境 eclipse版本:Eclipse Mars2 4.5jdk版本:1.8maven版本:apache-maven 3.3.9zhnegs这是主要的开发工具版本,ssh的各种jar包版本就不列 ...
随机推荐
- Java并发编程(四):线程安全性
一.定义 当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些进程将如何交替执行,并且在主调代码中不需要额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的. 二.线程安 ...
- 基于flink快速开发实时TopN程序
TopN 是统计报表和大屏非常常见的功能,主要用来实时计算排行榜.流式的TopN可以使业务方在内存中按照某个统计指标(如出现次数)计算排名并快速出发出更新后的排行榜. 我们以统计词频为例展示一下如何快 ...
- jQuery 语法(一)
通过 jQuery,您可以选取(查询,query) HTML 元素,并对它们执行“操作”(actions). jQuery 语法实例 $(this).hide() 演示 jQuery hide() 函 ...
- python学习之locals()
locals() 返回一个字典对象.收集并返回局部变量.可以用在函数中,用来收集局部变量. >>> def f(): ... a = 'tom' ... print(locals() ...
- 0051 MyBatis关联映射--多对多关系
用户与订单时一对多关系,再加上商品信息的话,订单与商品之间就是多对多关系了 DROP DATABASE IF EXISTS testdb; USE testdb; /*用户表,记录用户信息:用户与订单 ...
- linux之mail
使用该命令自动把系统发给root用户的邮件发送到自己的邮箱 #vi /etc/aliases # 编辑该文件并在最后一行添加即可,如图所示
- 跑测试没有web环境的情况
有时候 当你跑测试的main方法的时候,会有一些莫名其妙的错误,明明mave pom的包是全的,web跑起来不会报错,可是在main方法下就是报错了,这个时候引入 <dependency> ...
- gcc 遇到过的语法问题
1.在ubuntu 12.04 环境下,在/etc/ld.so.conf.d/目录里添加某个so库的配置路径,比如 /home/myself/abc/lib/ 执行 sudo ldconfig
- Oh my God, 连jQuery都放弃IE了!
jQuery 2.0在经过10个月的开发后发布.jQuery 2.0是为现代Web浏览器定制的,也考虑了移动设备.但一个重大变化是jQuery 2.0将不兼容旧版IE,其大小比版本1.9.1低10%. ...
- java 教程
1.视频教程 http://blog.csdn.net/zhangdaiscott/article/details/18220411 2.书籍教程: 3.学习课程