Maven基础

Maven的基础
Maven是Apache公司的一个开源项目,是一个项目构建工具,用来依赖管理。

一、Maven的好处

依赖管理
Maven基础二、Maven的好处如何实现

1.两大核心:
1.1.依赖管理:对第三方jar进行统一管理
1.2.项目构建:项目编码完成后,编译、测试、打包、部署一系列操作通过命令实现

2.通过maven命令将web项目发布到tomcat
2.1.进入maven web项目的目录下
2.2.mvn tomcat:run(-Dmaven.tomcat.port=8090 tomcat7:run)

三、Maven安装、配置本地仓库

maven程序安装前提:maven程序是java开发的,所以运行依赖于jdk;
3.1 Maven 的下载安装
(1)下载maven,并解压到本地(不要有中文和空格)

(2)目录结构
Maven基础
(3)配置环境变量(jdk和maven的安装路径都不能有中文和空格)
Maven基础Path变量中配置jdk和maven
Maven基础
(4)测试maven环境是否搭建成功
Maven基础3.2配置本地仓库
(1)仓库类型
本地仓库:在本地电脑上
私服:存在于本地的局域网内(局域网内的一台服务器)
*仓库:在互联网上,存放了基本上所有开源的jar包,由Apache下的maven团队进行维护(oracle没有)
Maven基础(2) 配置本地仓库
找到本地仓库的压缩包,解压到本地磁盘
配置本地仓库:让maven程序知道仓库在哪里
Maven基础
四、Maven项目标准目录结构
Maven基础
Maven基础

五、Maven的常用命令

1.clean:清理
mvn clean:清理项目编译后的class文件(删除target文件夹)

2.mvn archetype:generate或mvn archetype:create 创建项目
1、使用mvn archetype:generate命令
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=myapp -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

2、使用mvn archetype:create命令
mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=myapp -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

3.compile:编译
mvn compile:将项目中.java文件编译为.class文件
4.test:单元测试
mvn test:单元测试(将项目中的所有单元测试方法进行编译、执行)
单元测试类名的要求:必须是XXXTest.java(以Test结尾)
5.package:打包
mvn package:打包(将项目打包成war包或jar包,默认在taget目录下)
web project -----war包
java project -----jar包

6.install:安装
mvn install:安装(多个项目公用一个jar包)
打包到本地仓库

7.Maven项目的生命周期(了解)
在maven中存在“三套”生命周期,每一套都相互独立的,互不影响。
CleanLifeCycle:清理生命周期
Clean
DefaultLifeCycle:默认生命周期
Compile、test、package、install、deploy(将最终的包复制到远程仓库)
SiteLifeCycle:站点生命周期
Site

六、Maven整合web项目

1.配置maven程序
Maven基础
2.在myeclipse中指定本地仓库的位置
Maven基础
3.构建索引
Maven基础
4.创建Maven项目
Maven基础
Maven基础
如果不跳过原型,执行以下操作
Maven基础
选择maven-archetype-webapp创建web项目
Maven基础
创建好的web项目,错误:
1、web.xml缺失
2、Jdk编译为1.6,需要修改为1.7
Maven基础
创建servlet报错,缺少jar包
查找依赖:通过坐标在本地仓库中查找servlet所依赖的jar包
5.依赖范围(了解)
Maven基础
如:创建servlet时需要引入servlet-api.jar,打包发布到tomcat下时,如果项目中将servlet-api.jar一起打包到war包中,启动项目时可能报错,应为tomcat已经自带servlet-api.jar包。
Maven基础
解决方案:将scope改为provided
Maven基础
6.运行maven项目
Maven基础