Maven简介:
是Apache下的开源项目,是纯java开发的额,只是用来管理java项目
使用Maven好处:
1:jar包的统一管理,节省空间
多个项目时不需要每个项目都拥有一份jar包
没有jar包,所占空间小,jar包没有存在于maven项目里面,jar包均放在本地仓库中
本地仓库索引:加快索引速度
项目构建: 编码 编译 测试(junit) 运行 打包 部署
Maven能做的事: 编译 测试(junit) 运行 打包 部署
2:一键构建(不需要在电脑里安装tomcat与eclipse即可实现)
一个tomcat:run 命令即可实现项目的运行
3:可以跨平台
4:运用于大型项目,可以提高开发效率
5:Maven的分模块开发
互联网项目是按业务分模块 传统项目是按层分
软件安装:解压即可
Maven软件的核心配置文件:
Maven环境变量的配置:
Maven3.3以上的版本所需要的的jdk都是1.7以上的版本
将MAVEN_HOME加到Path中
在Path后添加 ;%MAVEN_HOME%\bin;
命令行执行:mvn -v出现如下则配置成功
本地仓库:
引入仓库:settings.xml文件中
三种仓库:
1:本地仓库:自己维护
本地仓库的配置只需要修改settings.xml文件即可
2:私服:公司内部搭建的远程仓库
3:中央仓库:互联网下载的仓库(Apache下的MAVEN团队来维护的)
Maven的目录结构:
pom.xml是整个项目的核心文件
test里面的resources文件夹放的是junit测试所用的配置文件,如果里面没有配置文件默认从main里找
注意:Maven在执行命令的时候一定要先进入项目中
Maven的常用命令
mvn tomcat:run 一键启动
mvn compile:编译(只是编译了主目录的文件)
mvn test:只编译并运行了测试目录test里面的文件
mvn package:将项目打包(web项目打包成war文件,java工程是打包成jar包,依赖管理管理的是jar包,对war包没有作用)
mvn install:将项目发布到本地仓库,也会打包
Maven的生命周期(了解):
compile test package install deploy(发布到私服上)
执行顺序:compile test package install
即当执行install时相当于前三个命令都执行了
Maven的生命周期有三种
1:clean 属于clean生命周期里面的,与其上四种是没有关系,没有影响的
2:default : compile test package install
3:site生命周期 :site命令生成项目的站点文档
命令与生命周期阶段的关系
不同的生命周期的命令可以同时执行
例如:mvn clean package
关于项目的搭建:
首先检查编码环境
1:
2:
安装插件:M2e插件的安装,不需要安装Maven,eclipse的Mars2版本自带了
插件的配置 两个地方
1:选择3.3.9版本的Maven软件
2:修改默认的本地仓库地址
完成以上步骤则Maven在eclipse中的环境没有问题了
注意:new 一个项目时是Maven项目
骨架:一个项目的模版
不跳过骨架(不勾选)创建的项目是缺少文件夹的,目录是不全的,需要自己创建
所以在创建项目时都将此项勾选上
项目坐标:别人使用这个项目的时候是通过坐标来寻找的
Group Id:组的名字(公司或者组织的名称)
Artifact Id:模块名称或项目名称
例如:创建crm的dao模块
Packaging:打包方式 jar:创建出来的工程默认是java工程 war:创建出来的工程默认是web包 pom:创建出来的是一个父工程
name:可写可不写 是对项目名称的描述 不起任何作用
name与description都可以不写
创建完成后项目左上角或有一个M标志,表示这个项目是Maven工程
报错处理:
1:处理红色叉号:
注意:web.xml文件每次都不会帮我们自动生成,因此创建项目后我们需要手动在webapp下创建WEB-INF文件夹与web.xml文件
处理编译版本:将1.5版本换为1.7
将以下代码配置到项目的pom.xml文件中
2:配置好后项目可能会报错:右击项目
点击ok会发现项目变成了1.7版本的,配置成功
创建一个servlet文件放到:中
3:创建完成后,文件中有很多错误 原因:缺少jar包
解决:
粘贴进项目中的pom.xml文件
点击保存
出现:
且项目中出现了需要的jar包:
4:web.xml也会报错,因为创建后,它自动修改了web.xml文件的内容,且将web.xml文件的头部信息也修改了
头部文件重复了,去掉重复即可
运行项目:
eclipse中运行结果:
拷贝里面的地址在浏览器上运行
实战小demo:
需求:整合struts2 页面上传一个客户id 跳转页面
创建依赖
创建一个jsp页面:
jsp文件内容:
创建完成后报错,原因是缺少jar包
方法一:右击pom.xml文件
方法二:在pom.xml文件里面右击
方法三:点击下方的Dependencies
输入jsp发现没有反应:因为还没有创建索引
创建索引:
再次点开Local Repository发现里面有东西了
再次添加依赖选择第一个javax里面的。。。
点击ok发现pom.xml文件中出现
添加servlet:
添加junit:
添加struct2包:
添加成功后会看见:
创建CustomerAction类:
添加struts.xml配置文件到
在struts.xml配置中配置:
在web.xml中配置:
运行发现报错:
原因:有两个jar包(jsp与servlet)冲突了(tomcat里面已经有了这两个jar包,不需要我们配置的jar包)
解决办法:将jsp与servlet的jar包的scope改为provide
一个简单的技巧:再次运行时可以不再输入tomcat:run Maven build是重新运行上一次的命令
若还是报错,检查pom.xml文件中是否缺少
不报错后在浏览器上访问http://localhost:8080/helloworld/findById.action?custId=12
注意:访问时不要掉了.action 因为上面在struts.xml中配置时控制名是这样要求的,也可更改配置
运行结果:
eclipse中的运行结果:
依赖范围:默认是compile,若设置为compile是可以在pom.xml文件中不写scope配置的
complie:
编译、运行、测试、打包均需要
provided:
编译(compile)时需要,测试(test)时也需要,运行不需要,打包时不需要
runtime:数据库驱动包
编译的时候不需要,测试需要,运行时需要,打包时需要
test:是针对junit
编译时不需要,测试时需要,运行时不需要
添加插件(了解)
在pom.xml文件中:
选择最后一个:
修改端口号与访问路径:
启动后eclipse中的显示的访问路径变了:
浏览器中:
以tomcat7运行:
运行是命令语句是: tomcat7:run (因为默认是tomcat6)
运行时常见问题:说明jdk安装有问题
总结:
Maven的好处
1:节约空间 对jar做了同一的管理(依赖关系)
2:一键构建(一个命令就可以将项目运行起来)
3:可跨平台(因为Maven是基于java开发的,java是可跨平台的)
4:运用在大型项目时可提高开发效率
Maven的安装及配置
Maven的仓库
1:本地仓库(自己电脑上的)
2:远程仓库(私服)
3:中央仓库
依赖的添加(两种方式)
1:从物联网上下载(推荐第二个)
2:在本地重建索引,以索引的方式来添加
项目构建
创建Maven project ,勾选骨架,填写坐标,选择打包形式
添加web.xml文件
添加jsp与servle的jar包注意scope选择provided
在pom.xml文件中进行配置将1.5版本换为1.7版本
整合structs2(2.3.24版本) 添加jar包 添加struts.xml文件 web.xml中配置拦截器