Maven是Apache公司的一个开源项目,‘是项目构建工具,用来依赖管理
1.Maven的好处
同样的项目,实现功能一样,Maven项目大小远小于传统项目–Maven项目中没有jar包
2.Maven的好处如何实现
maven的两大核心:
1)依赖管理:对jar包管理过程
2)项目构建:项目在编码完成后,对项目进行编译·测试·打包·部署等一系列的操作都通过命令来实现
3.Maven安装、配置本地仓库
maven程序安装前提:maven程序java开发,它的运行依赖jdk
3.1配置maven步骤
1)下载·安装maven
2)解压到本地磁盘(不解压目录不能有中文,空格)
3)配置环境变量
MAVEN_HOME:maven路径
path:;%MAVEN_HOME%\bin
4)执行:mvn -v查看是否配置成功
maven文件含有:
bin)可执行的脚本命令
conf)配置文件
lib)maven项目运行需要的jar包
3.2配置本地仓库
1)创建一个本地仓库文件夹如:
2)配置本地仓库:让maven程序知道仓库在哪
./apache-maven-?.?.?/conf/settings.xml
<localRepository>D:\工具\Maven\local_repository</localRepository>
仓库
本地仓库:在程序员的笔记本上
-->\本地仓库找不到\/前提:安装私服/-->私服:存在与局域网内的一台服务器,存jar包
-->\私服也找不到\由Apache维护//-->中央仓库:在互联网上,存放了基本上所有开源的jar包,由maven团队维护
本地仓库-->中央仓库)前提:外网
4.Maven项目标准目录结构
src)项目源码
mian>
java>主体程序源码
resources>项目需要的配置文件
webapp>放入页面素材(页面,css,js,image)
test>
java>单元测试类
target)不属于标准的目录结构
src编译后的存到target
pom.xml)maven项目核心配置文件
5.Maven的常用命令
mvn tomcat:run
1)clean:清理
将项目根目录下的target目录清理掉
2)compile:编译
将项目中的.java编译为.class文件
3)test:单元测试
单元测试类名有要求:XxxxTest.java
将项目根目录下src/test/java目录下的单元测试类都会执行
4)package:打包
web project ---war包
java project ---jar包
将项目打包,打包项目根目录下taget目录
5)install:安装
解决本地多个项目公用一个jar包
打包到本地仓库
6)在maven中存在“三套”生命周期,没一套生命周期相互独立,互不影响.在一套生命周期内,执行后面的命令,前面命令会自动执行
CleanLifeCycle:清理生命周期
Clean
defaultLifeCycle:默认生命周期
compile,test,package,install,deploy
siteLifeCycle:站点生命周期
site
6.Maven整合web项目案例
1)配置eclipse中maven环境
1.1>配置m2e插件,mars2版本自带maven(eclipse有可能自带了)
打开:window>show View>Other
1.2>需要配置maven程序
打开:window>Maven>Installations
>配置maven安装目录
1.3>配置userSetting:让eclipse知道maven仓库位置
打开:window>Maven>User Settings
>配置maven中setting.xml文件的位置
>配置maven本地仓库位置
1.4>构建索引
打开:window>show View>Other
找到:Maven Repositories
2)Maven整合servlet
创建好的web项目,错误:
1>web.xml缺失
2>jdk编译版本1.5,在pom.xml中添加插件
3>创建servlet,servlet编译报错,原因:
缺失servlet-api-xx.jar包
4>查找依赖
5>依赖范围(了解)
添加依赖范围:默认是compile
provided:运行部署到tomcat不在需要jar包
如果将servlet-api.jar设置为compile,打包后包含servlet-api.jar,war包部署到tomcat中存在servlet-api.jar包冲突.导致运行失败
解决 :
总结:如果使用到tomcat自带jar包,将项目中依赖作用范围设置为:provided
6>运行项目
调试:
通过工具生成web.xml