安装maven软件:
maven这个软件是使用java语言开发的,所以安装maven前要保证电脑上有java的环境.
解压缩安装即可
配置Maven的环境变量
在dos窗口中查看maven的安装情况: mvn -v
maven仓库(jar包仓库):
概念: 在计算机上本质上就是一个存放jar包的文件夹.
分类:
本地仓库: 安装在你自己电脑上的仓库,只服务于你自己
远程仓库(私服): 某些公司或组织搭建的maven仓库,服务于当前公司或组织的所有成员.
中央仓库: 最大的仓库,Apache组织提供的仓库,服务于所有的程序员
中央仓库的代理仓库
搭建本地仓库:
本地仓库默认存放在c盘
自定义仓库存放的位置,在maven的setting.xml文件中指定本地仓库的路径.
maven的一键构建:
mvn clean : 清理
mvn compile : 编译主要的资源
mvn test : 测试
mvn package : 打包
mvn install : 安装到本地仓库
mvn deploy : 安装到私服(远程仓库)
maven管理后的java和web项目:
web项目:
项目名称: 骨架
|-src : 存放项目使用的所有资源
|-main : 存放主要的资源
|-java : 存放主要的java类
|-resources : 存放主要的配置文件
|-webapp : 存放静态资源
|-test : 存放测试的资源(用于测试主要资源是否正常)
|-java : 存放测试的java类
|-resources : 存放测试时使用的配置文件
|-target : 项目资源编译后存放的目录
|-pom.xml : maven项目的核心配置文件
描述当前项目
当前项目依赖的jar包坐标
当前项目依赖的插件(tomcat插件,maven中最高支持到tomcat7)
java项目:
项目名称:
|-src : 存放项目使用的所有资源
|-main : 存放主要的资源
|-java : 存放主要的java类
|-resources : 存放主要的配置文件
|-test : 存放测试的资源(用于测试主要资源是否正常)
|-java : 存放测试的java类
|-resources : 存放测试时使用的配置文件
|-target : 项目资源编译后存放的目录
|-pom.xml : maven项目的核心配置文件
描述当前项目
当前项目依赖的jar包坐标
maven基础
第一章 maven概述
maven: 内行,专家
maven是项目管理方面的专家,专门用于在开发阶段进行项目管理.
作用:
一键构建项目:
插件: 实现了指定功能的代码片段.
一个命令对应一个插件,一个插件可以实现一种功能,对项目管理.
compile: 命令
可以将当前项目下所有的java类实现编译
jar包依赖管理:
maven将所有的jar包进行了统一管理,存放在maven的jar包仓库中.
当我们的项目需要使用jar包时,直接同jar包坐标定位jar包在仓库中的位置即可.
1.1 maven简介
为什么需要将项目打包:
整个项目的源码只有程序员手中有.
项目部署时,将项目的配置文件,java类编译后的class文件,静态资源等等打成一个包,将打好的包交个运维,进行运行维护
项目打包:
jar包: java项目打成的包叫做jar包
META-INF:
对当前jar包版本的描述及说明
class文件:
包中存放的是java类编译后的class文件
war包: web项目打成的包叫做war包
META-INF: 存放当前包的描述信息
WEB-INF:
classes: 存放web项目中java类编译后的class文件
lib: 存放当前项目需要依赖的jar包
web.xml: web项目的核心配置文件
index.html
静态资源
项目部署时,直接将war包存放到webapps目录下即可
jar包和war包中没有java类,只有java类编译后的class文件,部署项目时,只需要部署war包即可.
1.2 作用:
jar包的依赖管理:
可以统一管理jar包
一键构建项目
第二章 Maven的安装与maven仓库配置
2.1 下载
2.2 maven安装与目录
2.3 配置maven环境变量
注意: maven的运行需要JDK做支持,所有电脑上必须配置了JDK的环境变量
-------------------------------------------------------
1.配置maven的环境变量
变量名称: MAVEN_HOME
变量值: maven安装的目录,可以点"浏览目录"选择安装位置
2.将maven的环境变量加入到系统环境变量中
在最前面添加: %MAVEN_HOME%/bin;
3.检测配置是否正确
在dos中输入: mvn -version
2.4 maven仓库
maven仓库: jar包集. 本质上指的是存放jar包的文件夹,在maven仓库中存放有各种我们需要使用到的jar包.
仓库分类
maven项目加载jar包流程图
安装配置本地仓库
安装本地仓库
直接将压缩包解压缩即可
注意: 不要安装在有中文和空格的路径下.
本地仓库配置
说明:
本地仓库的默认地址是:${user.dir}/.m2/repository
maven默认去C盘找本地仓库,由于maven仓库存放的jar包比较多,所占空间比较大,我们一般不将仓库存放C盘
当我们安装好maven仓库后,需要修改maven的配置文件,指定一下maven本地仓库的位置,这样以来maven就知道去哪个位置找jar包了.
------------------------------------------配置
修改settings.xml配置文件,在maven的conf目录下:
settings.xml
53-55行: 添加
你的maven仓库的路径
D:\software\maven\repository
如果需要配置私服,要修改settings.xml文件
安装好maven软件后,在setting.xml文件中配置:
1.本地仓库的路径
2.配置jdk的版本
3.配置阿里私服
D:\software\java\maven\repository
central
aliyun-central
http://maven.aliyun.com/nexus/content/groups/public/
central
jdk8
true
1.8
1.8
1.8
1.8
downloadSources
true
true
aliyun-central
aliyun-central
http://maven.aliyun.com/nexus/content/groups/public/
true
true
default
downloadSources
第三章 Maven项目的标准目录结构
回顾: web项目部署到服务器上的目录结构
项目名称: ★★★
|- 静态资源 //html css js img ...
|- WEB-INF //受保护的目录
|- classes //存放项目中java类编译后的class文件
|- lib // 存放项目需要的jar包
|- web.xml //web项目的核心配置文件,servlet2.5之前必须要有,3.0后可有可无
以下这些目录结构,仅仅是maven项目在IDEA中显示的结构,最终部署到服务器上后,仍然会转成上面的结构
maven的web项目: ★★★★★
项目名称(helloworld): 骨架(固定的目录结构)
|-src: 存放当前项目的一切数据资源
|-main: 存放当前项目的主要资源
|-java: 存放当前项目的java类
|-resources: 存放当前项目的配置文件
|-webapp: 存放静态的资源(javaweb项目独有)
|-静态资源
|- WEB-INF:
|-web.xml
|-test: 存放当前项目的测试资源
|-java: 存放测试的java类
|-resources: 存放测试时需要的配置文件
|-target: 动态生成的(不用管)
|-pom.xml: maven的核心配置文件(引入jar包坐标)
存放本项目的基本信息
项目依赖的jar包信息
项目依赖的插件信息
==========================================================
maven的java项目: ★★★★★
项目名称:
|- src : 当前项目的一切资源信息
|- main : 主要信息
|- java : 当前项目的java类
|- resources : 当前项目需要的配置文件
|- test : 测试信息
|- java : 存放测试类
|- resources : 存放测试类需要用到的配置文件
|- target : 当前项目中java类所编译后的文件
|- pom.xml : 存放当前项目所需要依赖的jar包的坐标
java项目打成的包 -----> jar包
存放java项目编译后的class文件
web项目打成的包 -----> war包
注意:
无论是maven的java项目还是web项目在打包时,test目录中的信息都不会打入包中
第四章 Maven的常用命令(goal)
借助于maven的常用命令可以实现maven项目的一键构建, maven提供的每一个命令,就可以实现指定的一个功能.
声明: 这些命令大家可以不敲,但要明白什么意思. IDEA为我们提供了图形化界面方式操作命令.
4.1 常用命令:
在不借助IDEA的情况下运行一个web项目.
命令描述:
我们可以在dos里,使用Maven的一系列命令,来对Maven项目进行编译、测试、运行、打包、部署。
Maven命令的统一格式: mvn 命令
mvn clean //清理
清除项目根目录下的target目录(之前编译的内容)
mvn compile // 编译
将项目中src/main/java里的 *.java编译成 *.class
mvn test // 单元测试
编译并执行根目录中src/test/java中的测试类。
测试代码存在的目的就是为了测试核心代码是否正确,所有测试命令在执行时,一定会先将核心代码给编译
要求:单元测试类名必须是XXXTest.java,否则不能执行
只有类名称已Test结尾,那么类中的单元测试方法才能执行.
mvn package // 打包
将项目打包,然后放在根目录的target目录下
Java项目,打包成jar包
web项目,打包成war包
在打成的包中包含的是main/java包下,java类编译后的class文件
mvn install //安装
把项目打好的包安装到本地仓库
Java项目-->jar包
web项目-->war包
mvn deploy //安装
将项目打好的包安装私服(远程仓库)中
在外部使用maven中的tomcat插件启动maven项目:
在dos命令中输入: mvn tomcat7:run
mvn tomcat:run (默认使用的是tomcat6)
maven支持的tomcat最高版本为tomcat7
在pom.xml文件中配置tomcat7插件
// 当前插件所属的团队或公司
org.apache.tomcat.maven
// 当前插件的名称
tomcat7-maven-plugin
// 版本号
2.2
// 配置端口号
80
// 配置当前项目名
/helloworld
以上命令之所以会起作用,是因为每一个命令会调用一个插件,在插件中已经实现了具体的功能.
pom.xml解释
com.itheima
helloworld
1.0-SNAPSHOT
war
javax.servlet
javax.servlet-api
3.1.0
provided
helloworld
// 当前插件所属的团队或公司
org.apache.tomcat.maven
// 当前插件的名称
tomcat7-maven-plugin
// 版本号
2.2
// 配置端口号
80
// 配置当前项目名
/helloworld
4.2 maven生命周期(了解)
Maven有三套生命周期,三套生命周期之间互相独立的:
第五章 使用idea开发Maven项目
在idea中集成Maven的环境:
5.1 idea配置maven环境
-DarchetypeCatalog=internal
5.2 创建maven的java项目
// 1.创建maven项目 new maven
// 2.选择骨架 quickstart
// 3.设置项目基本信息 (公司域名倒置,项目名称,版本)
// 4.确认信息是否正确
// 5.确认项目名称
5.3 创建maven的web项目(重点)
// 1.创建maven项目 new maven
// 2.选择骨架 webapp
// 3.设置项目基本信息 (公司域名倒置,项目名称,版本)
// 4.确认信息是否正确
// 5.确认项目名称
添加webapp目录
5.4 添加jar包坐标
1. 在maven的pom.xml文件中,使用 alt+insert 快捷方式查找本地仓库中的jar包
2019的IDEA无法使用,如果使用2019的IDEA直接复制上课使用的jar包坐标
能够被搜索到的jar包,一定是idea构建索引后的.
2. 通过 https://mvnrepository.com 网站查询需要引入的jar包坐标
3. 直接将使用的jar包坐标复制到你的pom.xml文件中 ★★
5.5 部署项目的多种方式
编写好maven的web项目后, 我们可以使用maven自带的插件部署项目,
也可以使用原来的方式部署项目
两种方式都可以.
org.apache.maven.plugins
maven-surefire-plugin
2.19
org.apache.maven.surefire
surefire-junit4
2.19
org.apache.tomcat.maven
tomcat7-maven-plugin
2.2
utf-8
80
/
5.6 jar包依赖范围
jar包冲突: 在一个项目中引入了功能相同版本不同的多个jar包.
可以设置jar包的依赖范围
描述:
compile:
默认的依赖范围,在编译、测试、运行时都有效—最终会出现在jar包/war包里
test:
编译和单元测试有效,其它无效—最后生成的jar包/war包里没有这一类jar包
provided:★★★
jar包在其它地方已经提供了,比如:jdk已经提供了,或者Tomcat/WebLogic/WebSphere里边提供了----编译以及测试有效,最终不会出现在war包/jar包里
runtime:
编译无效,测试有效,运行有效。比如:数据库驱动包。
查询maven坐标网站: http://mvnrepository.com/
4.0.0
com.itheima
day12_04_web
1.0-SNAPSHOT
war
UTF-8
junit
junit
4.11
provided
javax.servlet
jsp-api
2.0
provided
javax.servlet
javax.servlet-api
3.1.0
provided
第六章 概念模型(了解)
pom.xml: project object model,项目对象模型
jar包坐标
javax.servlet
javax.servlet-api
3.1.0
provided
jstl
jstl
1.2
mysql
mysql-connector-java
5.1.26
compile
commons-beanutils
commons-beanutils
1.9.2
compile
org.mybatis
mybatis
3.4.5
log4j
log4j
1.2.17
总结
maven: 内行,专家
maven是项目管理方便的专家,可以管理项目的方方面面,
将我们从繁琐的开发流程中解脱出来,让我们只关注程序代码.
maven的作用:
一键构建项目:
maven的一个命令可以调用对应的插件,在插件中完成对应的功能.
构建项目: 从无到有,从有到部署上线的整个过程叫做构建.
jar包的依赖管理:
maven提供了jar包仓库,在jar包仓库中对需要使用到的jar包进行统一管理.
1.maven的下载与安装
maven版本: 3.5.4版本
安装:
直接解压即可(不要安装在有中文和空格的目录下)
安装完毕后,配置maven的环境变量.
注意: maven这个软件是使用java语言开发的,所有需要依赖java的环境变量
2.maven仓库
仓库分类: 本地仓库 远程仓库(私服) 中央仓库
本地仓库搭建:
maven仓库本质上就是存放了jar包的文件夹.
直接将准备好的jar包存放到一个文件夹中即可,这个文件夹称之为jar包仓库.
在maven的setting.xml文件中,配置本地仓库的地址.
3.maven项目的目录结构
maven的web项目:
项目名称: 骨架
|-src: 存放项目的资源
|-main: 存放主要资源
|-java: 存放主要的java类
|-resources: 存放主要的配置文件
|-webapp: 存放静态资源
|-html css js img
|-WEB-INF: 受保护的目录
|-web.xml web项目的核心配置文件
|-test: 存放测试资源(为了测试主要资源)
|-java: 存放测试的java类
|-resources: 存放测试的配置文件
|-target(不用管,动态生成,存放编译后的资源)
|-pom.xml maven的核心配置文件
a.配置当前项目的信息
b.配置当前项目依赖的jar包坐标
c.配置当前项目依赖的插件
maven的java项目:
项目名称: 骨架
|-src: 存放项目的资源
|-main: 存放主要资源
|-java: 存放主要的java类
|-resources: 存放主要的配置文件
|-test: 存放测试资源(为了测试主要资源)
|-java: 存放测试的java类
|-resources: 存放测试的配置文件
|-target(不用管,动态生成,存放编译后的资源)
|-pom.xml maven的核心配置文件
a.配置当前项目的信息
b.配置当前项目依赖的jar包坐标
c.配置当前项目依赖的插件
4.一键构建项目---maven的常用命令(了解)
生命周期:
清理生命周期: 清理
mvn clean
默认生命周期: 默认需要执行的
mvn compile : 编译主要的java类
mvn test : 执行单元测试
mvn package : 打包
mvn install : 安装到本地仓库
mvn deploy : 安装到私服中
站点生命周期: 生成项目的描述网页
mvn site : 生成网页,对当前项目描述
5.在IDEA中使用maven ★★★
idea中配置maven环境
创建maven的java项目,web项目
部署maven的web项目:
tomcat8部署,和之前一样
tomcat7插件部署:
在项目的pom.xml文件中引入插件
6.jar包依赖管理
在pom.xml文件中引入jar包的坐标
alt+insert: 搜索本地仓库中的jar包
复制jar包坐标
查询: https://mvnrepository.com/
在idea中,只要jar包坐标正确,会自动下载jar包到本地仓库
7.概念模型:
pom.xml: project object model
项目对象模型
maven中的相关名词
125
POM.xml文件
1.当前项目的相关描述信息
com.itheima
day11_04_web
1.0-SNAPSHOT
war
2.jar包依赖
导入项目需要依赖的jar包坐标
javax.servlet
javax.servlet-api
3.1.0
provided
junit
junit
4.12
test
3.项目依赖的插件
org.apache.maven.plugins
maven-surefire-plugin
2.19
org.apache.maven.surefire
surefire-junit4
2.19
org.apache.tomcat.maven
tomcat7-maven-plugin
2.2
80
/
在maven的核心配置文件中配置jdk的版本
在maven的setting.xml文件中配置
注意存放到profiles标签中
------------------------------
jdk8
true
1.8
1.8
1.8
1.8