最开始,需要了解的是JAVA的Web项目基本技术:
浏览器 ↓ 表示层→视图层 →H5/CSS/JS/JSP →控制层 →Servlet/Action/Handler ↓ 业务逻辑层 →Spring IOC AOP ↓ 持久化层 →JDBC/DBUtils/SpringJDBCTemplate/Hibernate/MyBati s ↓ DB →MySQL/Oracle 注: 蓝色表示常见的技术. 那么为什么会有Maven这类技术手段诞生? 四个在开发中的麻烦问题以及Maven对这些问题的优势 : ① 一个项目就是一个工程 如果一个项目非常庞大,不适合使用package来划分模块,最好是每一个模块对应一个工程,利于分工协作。 借助于Macen就可以将一个项目拆分为多个项目。 ②项目中需要的JAR包 必须手动复制粘贴到WEB-INF/lib目录下 带来的问题:同样的JAR包重复出现在不同的项目工程中,浪费存储空间,让工程比较臃肿。 借助Maven,可以将JAR包仅仅保存在“仓库”中,有需要使用的工程“引用”这个文件接口,并不需要把真的JAR包复制过来。(一小段文本代码代替JAR包) ③JAR包需要别人替我们准备好,或到官网下载 不同技术的官网提供JAR包的下载形式是五花八门的。 有些技术的官网就是通过Maven或SVN等专门的工具来提供下载。 如果是以非正规方式下载,内容很可能也不规范。 借助Maven可以以一种规范的方式下载JAR包,因为所有知名框架或第三方工具的JAR包已经按照统一的规范放在了Maven的中央仓库中。 ④一个JAR依赖的其他JAR需要自己手动加入到项目中 FileUpload 组件依赖于 IO组件。如果所有依赖感关系都需要程序员非常清楚,那么就会极大的增加学习成本。 Maven会自动的将被依赖的JARA包导入进来。 什么是Maven?① 是一款服务于JAVA平台的自动化构建工具。下面是Maven的发展路线, 由于掌握者并不够多,Gradle并不普及.
Make→ Ant → Maven → Gradle
② 构建
【1】概念:以 JAVA源文件,框架配置文件,JSP,HTML, 图片等资源为原材料,去“生产”一个可以运行的项目的过程。
【2】编译:JAVA源文件,→编译→CLASS字节码文件→交给JVM执行。
【3】部署:一个BS项目最终运行的不是一个动态WEB工程本身,而是这个动态WEB工程 编译的结果。
开发过程中,所有的路径或配置文件中配置的类路径都是以编译结果的目录结构为标准的。
③构建过程中的各个环节
[1]清理:将以前编译得到的就得CLASS字节码文件删除,为下次编译做准备
[2]编译:将JAVA源程序编成CLASS字节码文件
[3]测试:自动测试,调用junit程序
[4]报告:测试程序执行的结果
[5]打包:动态Web工程打WAR包,JAVA工程打JARA包
[6]安装:Maven特定的概念——将打包得到的文件复制到“仓库”中的指定位置
[7]部署:将动态Web工程生成的War包复制到Servlet容器的指定目录下,使其可以运行。



