maven的基础
1、 对于以前的技术掌握的图示【每一层代表技术应用】
2、 目前技术在开发的存在的问题
(1)、一个项目就是一个工程
如果项目非常庞大,就不适合继续使用package开进行划分模块,利于分工协作。
借助maven就可以讲一个项目拆分成多个工程
(2)、项目中需要的jar包行必须手动复制,粘贴到WEN-INF/lib目录下
带来的问题就是:同样的jar包文件重复出现在不通的项目中,一方面浪费存储空间,另一方面也让工程比较臃肿。
借助maven,可以把jar包仅仅保存在“仓库”中,有需要使用的工程“引用”这个文件借口,并不需要真的把jar包复制过来
(3)、jar包需要别人替我们准备好,或者到官网下载
不同的技术的官网提供的jar包下载的形式是五花八门。有些技术的官网就是通过amven或者svn等提供的工具来下载的。
如果是一非正规的方式下载的jar包,那么其中的内容也可能也不是的规范。
借助maven可以以一种规范的范式的下载jar包,因为所有知名的框架或者第三方工具的jar包以及按照统一的规范存放在maven的中央仓库中。
(4)、一个jar包依赖的其他jar需要自己手动加入到项目中。
如果所有jar包之间的依赖关系度需要程序员自己非常强出的了解,就会加大程序员的工作量。Maven会自动将依赖的jar包导入进来。
3、 maven是什么?
(1)maven是一款服务于java平台的自动化构建工具
构建工具的发展历程:
Make -> ant ->maven->gradle
(2) 构建
A、 概念:以“java源文件”、“框架配置文件”、“jsp”、“html、图片”等资源为“原材料”,去生产一个项目的过程。
B、 编译:java源文件->编译->class字节码文件->交给jvm去执行
C、 部署:一个BS项目最终运行的并不是web工程本身,而是这个动态工程编译的结果
动态web工程->编译、部署->编译结果
(3) 构建过程中的各个环节
1)、清理:将以前.class的字节码文件删除。为下一次编译做准备
2)、编译: 将java源程序编译成class字节码文件
3)、测试:自动测试。自动调用junit程序
4)、报告:打印测试结果
5)、打包:动态web工程打war包、java工程打的是jar包
6)、安装:Maven特定的概念—将打包的得到的文件复制到的“仓库”中指定的位置
7)、部署:将war复制到的serlvet的容器中,进行运行