前边我们从工程的体量、jar包的来源、jar包之间的依赖、jar包之间的重复四个方面讲了讲Maven相对于传统Java动态工程的优势,即Maven可以使得每一个模块对应一个工程且可以让工程之间互相通信,Maven会将所有工程中用到的jar包放入到一个仓库中若工程需要时对其进行引用即可,Maven还可以自动的向工程中导入某个jar包的依赖包而不用程序员自己根据经验去手动的添加了,Maven中的jar包不会重复和浪费资源。
今天我们来讲一讲Maven的概述。
1.Maven是什么
Maven是一个服务于Java平台的自动化构建工具。
2.发展历史
Make--Ant--Maven--Gradle(最新最好的)
3.Navigator视图
我们在开发中常常使用Project Explore来透视图来进行开发,有时我们也可以使用到Navigator透视图,它显示的工程目录结构和Project Explore不同,它没有一些运行时环境的目录,因为它仅仅是表示出工程文件在电脑上的物理路径。
3. 构建的概念
构建就是Maven利用Java源程序、第三方框架或者工具的配置文件、html/jsp/国际化资源文件等静态资源文件作为生产原材料去“生产”一个可运行在WEB服务器上的项目的过程。具体来说有三个步骤:
① 编译:.java-》.class。
② 部署:将WEB工程编译后的结果放到服务器上的指定目录下。
4.构建的各个环节
① 清理:清理之前编译好的.class文件,为下一次编译做准备。
② 编译:将.java变为.class文件。
③ 测试:Maven可以在写好junit单元测试类的情况下自动的去执行这些单元测试方法。
④ 报告:获取测试程序的结果。
⑤ 打包:动态工程打成war包,普通Java工程打成jar包(由此可见平常直接使用的一些jar包,很可能是一个普通的Java工程)
⑥ 安装:将打包之后的文件复制到仓库中的指定位置。
⑦ 部署:将动态web工程生成的war包复制到servlet容器的指定目录下使其可以运行。
5.WEB中相对路径的问题
我们知道,在项目的开发过程中最好写绝对路径而不要编写相对路径,这是因为我们所说的路径是指过程部署到服务器上之后的目录结构路径,而不是我们在开发过程时看到的路径。为了避免不必要的麻烦我们最好写绝对路径。但是我们也需要知道在服务器中的目录格式大致设么样子,其实就是将编译好的builed/classes中的内容放到来原来的WebContent下边,而原来的WebContent则使用过程的名称替代即可。(这个classes就是指的类路径)。如在tomcat中,我们会将编译好的工程放到tomcat的webapp下。