我最近两天在看maven,因为之前用MyEclipse的ssh框架挺好用的,所以就用MyEclipse集成的maven进行学习。本文主要介绍maven project的构建。
1. maven介绍
1.1 什么是maven
maven是Apache下一个纯java开发的开源项目,它是一个项目管理工具,使用maven对Java项目进行构建、依赖管理。
2. 什么是项目构建
项目构建是一个项目从编写源代码、测试、运行、打包、部署、运行的过程。
maven将项目构建的过程进行标准化,每个阶段使用一个命令完成,下图展示了构建过程的一些阶段。
上图中部分阶段对应命令如下:
- 清理阶段对应maven的命令式clean,清理输出的class文件。
- 编译阶段对应maven的命令是compile,将java代码编译成.class文件。
- 打包阶段对应的maven命令是package,Java工程可以打包成jar包,web工程可以打包成war包。
maven工程构建的优点:
- 1 一个命令完成构建、运行,方便快捷。
- 2 maven对每个构建阶段进行规范,非常有利于大型团队协作开发。
3. 什么是依赖管理
什么是依赖?一个Java项目可能要使用一些第三方的jar包才可以运行,那么我们说这个Java项目依赖了这些第三方的jar包。
举个例子:一个web project使用ssh框架,该web project依赖ssh框架,具体它依赖的是hibernate,spring,struts2.
什么是依赖管理?就是对项目所依赖的jar包进行规范化管理。
使用maven依赖管理添加jar的好处:
- 通过pom.xml文件对jar包的版本进行统一管理,可避免版本冲突。
- maven团队维护了一个非常全的maven仓库,里面包括了当前使用的jar包,maven工程可以自动从maven仓库下载jar包,非常方便。
4. maven仓库
4.1 maven仓库的作用
maven的工作需要从远程仓库(可以理解为互联网上的仓库)下载一些jar包并保存在本地仓库,本地仓库就是本地文件夹,当第二次需要此jar包时则不再从远程仓库下载,因为本地仓库已经存在了,可以将本地仓库理解为缓存,有了本地仓库就不用每次从远程仓库下载了。项目所需要的插件或jar包,优先从本地仓库找。
4.2 搭建本地仓库
默认本地仓库地址:${user.dir}/.m2/repository,${user.dir}表示windows用户目录。
配置本地仓库需要将repository.rar(自己去网上下载)解压至自己的电脑上。在maven的安装目录下的conf/settings.xml文件中配置本地仓库的位置:
将localRepository的地址改为你解压的repository.rar的地址。
将MyEclipse上的maven默认仓库地址改为你解压的repository.rar的地址。打开windows下的preference做如下图的操作,这样,本地仓库算是搭建好了。
4.3 maven项目工程目录
src/main/java—存放项目的.java文件
src/main/resources—存放项目资源文件,如spring、hibernate配置文件
src/test/java—存放所有单元测试.java文件,如JUnit测试类
src/test/resources—测试资源文件
target—项目输出位置,编译后的class文件会输出到此目录
pom.xml—maven项目核心配置文件
5. 构建web工程
5.1 创建maven工程
右击空白处,选择new Maven Project,这里将create a simple project勾选上
照着如下图定义坐标,注意groupId一般为公司或组织的名称,ArtifactId一般为项目的名称,packaging为打包方法,web工程为war,java工程为jar。
创建好后,pom.xml上会有个红叉,手动在main下新建一个web-app,在web-app下新建一个WEB-INF,再在其下建一个web.xml。在pom.xml里写上如下类容:
1 | <build> |
5.2 定义web.xml
在src/web-app/WEB-INF下的web.xml文件写上如下类容:
1 | <?xml version="1.0" encoding="UTF-8"?> |
5.3编写servlet
在src/main/java中创建servlet,代码如下:
1 | package com; |
5.4 编写jsp
index.jsp的类容如下:
1 | <body> |
test.jsp的类容如下:
1 | <body> |
5.5 添加servlet/jsp的jar包
在pom.xml中添加如下类容,然后在你建的工程上右击选择maven-》update project加载所需要的servlet/jsp包。
1 | <dependencies> |
5.6 配置servlet
在web.xml里配置servlet
1 | <servlet> |
5.7 运行
右击工程选择run as ,选择maven build,在Goals一行填写:tomcat:run运行。(特别注意,当所有步骤都做完之后,如果项目工程还有小红叉,解决办法:右击工程选择maven-》update project把Offline勾选上)