一、Maven的简介和安装

1、Maven是什么?

java 第三方sdk 安装 java怎么安装第三方库_生命周期

2、Maven的四个特点

1、添加第三方依赖(jar包)

以前添加各种jar包采取复制粘贴到项目中的方式,每次创建一个新的项目,如果需要使用第三方的jar包,都要放到项目中,jar包占用了大部分内容,会造成空间中的jar包占据了很大的地方,maven通过第三方仓库来解决jar包重复的问题。将所有的jar包都放在仓库中,项目要使用jar包只需要做依赖

2、解决jar之间的依赖关系

一般使用的第三方jar包,有的jar包在使用过程中对其他jar包又依赖关系。比如c3p0 jar包,在使用的时候必须同时添加,如果忘记添加,项目启动就会出现异常。在maven中,需要导入对应的一个依赖(jar包),该jar包依赖会自动导入。

3、 获取第三方依赖

maven如果在本地仓库中引入的依赖是不存在的,会自动取官方仓库去下载对应的jar包。官方地址:官方地址

4、可以将项目拆分开发

如果在大型项目中通过多人配置来做项目,每个人负责开发一部分,怎么划分项目,如果在一个中小型的公司,可以将项目安装package的方式拆分,如果项目开发人太多,通过package拆分就不合适,maven就可以将一个项目拆分成多个

java 第三方sdk 安装 java怎么安装第三方库_java_02


3、什么是构建?

项目的构建就是将我们开发的项目(Java代码,配置文件,静态资源,jsp)作为“原材料”去生产一个可以运行的项目的过程

开发的项目——>运行的项目

一般的项目构建分为下面几个阶段:

(1)清理:将原来生成的编译结果删除,为重新编译做准备工作
(2)编译:将JAVA源程序编译为字节码文件
(3)测试:针对项目的关键点进行测试,确保项目在迭代开发中关键点正确。
(4)报告:在每次测试后以标准的格式记录和展示测试结果
(5)打包:将一个包含多个文件的项目加工成对应的压缩包,java项目打包成jar,web项目打包成war;
(6)安装:在maven中独有的,将一个项目打包后安装到本地仓库。
(7)部署:将jar包部署到远程仓库或者将war包部署到服务器。

4、自动化构建
上述描述的步骤在各种工具里面都能实现,但是不太标准。
讲一个小的故事:
有一个程序员小明,向往常一样来到公司,打开邮箱查看工作邮件,发现测试小组发了一邮件,告诉小明你昨天开发的代码有bug,小明安装邮件中提升,将项目编译、测试、打包,部署运行查看bug,发现真的有问题,尝试修改bug,修改没有成功,发现午饭时间到了。吃饭,继续工作,当bug处理完毕后,将项目编译、测试、打包,部署运行,查看bug是否真的解决了,发送邮件给测试小组,告诉问题解决了。发现下班时间到了。

小明一天的工作:

java 第三方sdk 安装 java怎么安装第三方库_java_03


根据上面的图。发现小明一天工作大多数浪费在编译、打包、部署、测试上了。有没有一种工具将所有重复的过程都自动化实现。自动化部署就是将这些重复的劳动自动完成。

java 第三方sdk 安装 java怎么安装第三方库_生命周期_04


maven可以帮助我们完成重复的劳动

java 第三方sdk 安装 java怎么安装第三方库_生命周期_05


maven的作用:

java 第三方sdk 安装 java怎么安装第三方库_java_06

5、Maven的安装和配置*

(1)Maven的下载

官网地址:

这里是官网

java 第三方sdk 安装 java怎么安装第三方库_java 第三方sdk 安装_07


(2)Maven的安装

在安装前确保java安装是没有问题的:

java 第三方sdk 安装 java怎么安装第三方库_maven_08


①解压缩:

java 第三方sdk 安装 java怎么安装第三方库_maven_09


解压后的根目录:

java 第三方sdk 安装 java怎么安装第三方库_生命周期_10

bin:可执行文件
boot:引导目录
conf:配置文件 我们如果要修改maven的配置 都在改目录下
lib:jar包

打开conf:

java 第三方sdk 安装 java怎么安装第三方库_maven_11

logging:日志 maven的运行日志 如果maven启动出现问题 可 以在日志中查找
setting:maven的配置文件 所有的配置都在该文件中

②配置环境变量

和java配置环境变量一样

创建一个自定义变量:

java 第三方sdk 安装 java怎么安装第三方库_java_12


配置可以看见bin目录的文件路径:

在path下添加下面的配置:

java 第三方sdk 安装 java怎么安装第三方库_maven_13


配置后使用cmd查看是否配置成功:

java 第三方sdk 安装 java怎么安装第三方库_java 第三方sdk 安装_14


③Maven的配置settings.xml

1、修改本地仓库地址

默认是放在系统盘:

在系统中创建一个文件夹,用来做maven的本地仓库,建议大家叫repository

java 第三方sdk 安装 java怎么安装第三方库_maven_15


打开根目录下conf文件夹中的setting.xml文件:

java 第三方sdk 安装 java怎么安装第三方库_生命周期_16


2、修改中央仓库地址,为了加快下载的速度

配置阿里镜像或者华为镜像


alimaven

aliyun maven

http://maven.aliyun.com/nexus/content/groups/public/ central


java 第三方sdk 安装 java怎么安装第三方库_java_17


3、配置jdk的版本号

maven默认使用jdk1.5

将下面的配置添加到配置文件中:


jdk-1.8


true

1.8


<maven.compiler.source>1.8</maven.compiler.source>
 <maven.compiler.target>1.8</maven.compiler.target>
 <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>


java 第三方sdk 安装 java怎么安装第三方库_maven_18

二、Maven的工程构建*

(一)eclipse配置Maven的插件

java 第三方sdk 安装 java怎么安装第三方库_生命周期_19


搜索maven:添加maven的目录

java 第三方sdk 安装 java怎么安装第三方库_jar包_20


添加后选择默认maven使用并应用:

java 第三方sdk 安装 java怎么安装第三方库_生命周期_21


配置maven默认的配置文件位置:

java 第三方sdk 安装 java怎么安装第三方库_java 第三方sdk 安装_22


java 第三方sdk 安装 java怎么安装第三方库_jar包_23


(二)Maven工程的构建

1、创建java项目

右键创建一个新其他的项目:

java 第三方sdk 安装 java怎么安装第三方库_jar包_24

搜索maven,选择maven project

java 第三方sdk 安装 java怎么安装第三方库_maven_25

不使用模板创建项目:

java 第三方sdk 安装 java怎么安装第三方库_maven_26

填写对应的名称,创建项目:

java 第三方sdk 安装 java怎么安装第三方库_maven_27

项目创建后就默认有很多的构建:

java 第三方sdk 安装 java怎么安装第三方库_maven_28

在src/main/java 中就可以写代码:

java 第三方sdk 安装 java怎么安装第三方库_java 第三方sdk 安装_29

2、创建web项目

创建项目的时候要选择war:

java 第三方sdk 安装 java怎么安装第三方库_jar包_30

创建项目后,项目报错,告诉你少web.xml 文件:右键项目设置:

java 第三方sdk 安装 java怎么安装第三方库_maven_31

去掉勾选,假设该项目不是web项目:

java 第三方sdk 安装 java怎么安装第三方库_生命周期_32

继续勾选该选择:

java 第三方sdk 安装 java怎么安装第三方库_java_33

保存退出:查看当前项目:

java 第三方sdk 安装 java怎么安装第三方库_java_34

创建一个首页:

java 第三方sdk 安装 java怎么安装第三方库_java 第三方sdk 安装_35

运行:

java 第三方sdk 安装 java怎么安装第三方库_maven_36

访问页面:

java 第三方sdk 安装 java怎么安装第三方库_java_37

Maven的依赖管理

(一)Maven的核心概念

maven能够自动化部署项目,和核心概念是分不开的,我门从核心概念入手来查看maven如何自动化部署的

1、pom

POM(project object model)项目对象模型,在maven中使用管理对象的方法来管理项目,将所有的项目信息都封装到pom.xml文件中。pom文件就是maven的核心。

2、约定的目录结构

约定的目录结构对于maven来说是实现自动化部署不可缺的一步,我们如果想让maven自动化进行对应的步骤,首先要告诉maven我们的Java文件、静态资源在哪个文件下存放,告诉系统存放文件位置有2种方式:配置和约定,maven使用的约定,提前定义好文件存放的位置

java 第三方sdk 安装 java怎么安装第三方库_jar包_38


3、maven的仓库

(1)本地仓库

maven在当前电脑中存放jar包的或者插件的地方

(2)远程仓库

如果maven本地仓库没有jar包,会去远程仓库去查找:
1、中央仓库:官方创建的仓库,里面包含了几乎所有的jar包
2、中央仓库镜像:各大洲都创建中央仓库镜像;作用:提高用户的访问速度
3、私服:局域网中创建一个长裤,让局域网中所有人都在私服中下载资源,如果私服也没有对应的资源,会去中央仓库下载

4、maven的坐标
在日常生活中的坐标:
使用经纬度 x,y两个向量就可以表示平面的一个点
使用三个向量x,y,z来表示有高度的一个点

mavne中使用三个向量来表示一个jar包的位置:

java 第三方sdk 安装 java怎么安装第三方库_生命周期_39

groupid 组id
artifactid 项目或者组件id
version 版本号

(二)Maven的常用命令

1、在eclipse中创建maven项目

<dependency>
	    <groupId>junit</groupId>
	    <artifactId>junit</artifactId>
	    <version>4.12</version>
	    <scope>test</scope>
</dependency>

在新建的maven项目中导入jar包:

java 第三方sdk 安装 java怎么安装第三方库_java 第三方sdk 安装_40


配置完pom文件后,最好是更新一下当前的项目:

java 第三方sdk 安装 java怎么安装第三方库_maven_41


在src/main/java 创建一个主类:

java 第三方sdk 安装 java怎么安装第三方库_java_42


在src/test/java下创建一个测试类:

java 第三方sdk 安装 java怎么安装第三方库_java_43


2、maven常见命令:

必须配置maven的环境变量:

必须在pom.xml文件所在的目录下使用maven的命令:

java 第三方sdk 安装 java怎么安装第三方库_java_44


使用命令:

清理 mvn clean

java 第三方sdk 安装 java怎么安装第三方库_java_45


(2)编译命令 mvn compile

将主函数中java资源进行编译:

java 第三方sdk 安装 java怎么安装第三方库_生命周期_46


打开target文件夹:

java 第三方sdk 安装 java怎么安装第三方库_jar包_47


从结果来看,使用该命令只有src/main下面的java代码被编译了

(3)测试 mvn test

java 第三方sdk 安装 java怎么安装第三方库_生命周期_48


修改代码,重新测试:

java 第三方sdk 安装 java怎么安装第三方库_jar包_49


运行测试:

java 第三方sdk 安装 java怎么安装第三方库_java_50


在maven运行测试命令的时候 会将src/test/java下面所有的junit测试都运行一遍,确保没有问题。 maven命令中 自动执行前面所有的命令:

(4)打包命令 mvn package

java 第三方sdk 安装 java怎么安装第三方库_jar包_51


执行打包命令 如果测试不通过,是不会打包的

将代码修改为正确的,重新执行打包:

java 第三方sdk 安装 java怎么安装第三方库_maven_52


java 第三方sdk 安装 java怎么安装第三方库_java 第三方sdk 安装_53


查看targat文件夹:

java 第三方sdk 安装 java怎么安装第三方库_生命周期_54


(5)安装命令 mvn install 将jar包安装到本地仓库

java 第三方sdk 安装 java怎么安装第三方库_maven_55


查看本地仓库:

java 第三方sdk 安装 java怎么安装第三方库_jar包_56

(三)Maven依赖传递

1、什么是maven的依赖

java 第三方sdk 安装 java怎么安装第三方库_jar包_57


当一个项目配置了对应的jar包,该jar包就叫做当前项目的依赖

2、以来的传递

先将maven01重新安装到本地仓库

创建一个新的项目maven02,在mavne02中引入maven01的依赖:

java 第三方sdk 安装 java怎么安装第三方库_maven_58


查看mavne02项目的依赖jar包:

java 第三方sdk 安装 java怎么安装第三方库_maven_59


maven依赖是可以被传递的。

3、依赖的范围scope*
scope属性的作用:
常用的scope属性

compile(默认)
test
provided

(1)当前依赖的使用范围

java 第三方sdk 安装 java怎么安装第三方库_maven_60


测试:maven01项目中:

java 第三方sdk 安装 java怎么安装第三方库_java_61


修改scope属性:

java 第三方sdk 安装 java怎么安装第三方库_jar包_62


查看项目:

java 第三方sdk 安装 java怎么安装第三方库_java 第三方sdk 安装_63


complie 和 provided 范围的区别:

java 第三方sdk 安装 java怎么安装第三方库_java 第三方sdk 安装_64


在实际开发中,只需要配置两个对应的依赖就够了:

java 第三方sdk 安装 java怎么安装第三方库_生命周期_65


(2)当前依赖的传递级别

scope属性除了使用默认值,其余的都是不能被传递的:

java 第三方sdk 安装 java怎么安装第三方库_jar包_66


java 第三方sdk 安装 java怎么安装第三方库_java 第三方sdk 安装_67


应该是junit和servlet被传递了:

java 第三方sdk 安装 java怎么安装第三方库_maven_68


(四)maven依赖的传递原则*

maven01项目:

java 第三方sdk 安装 java怎么安装第三方库_java 第三方sdk 安装_69


maven02项目:

java 第三方sdk 安装 java怎么安装第三方库_java 第三方sdk 安装_70


maven03项目:

java 第三方sdk 安装 java怎么安装第三方库_java 第三方sdk 安装_71


maven04项目:

java 第三方sdk 安装 java怎么安装第三方库_maven_72


查看结果:

java 第三方sdk 安装 java怎么安装第三方库_jar包_73


1、路径短的优先

修改maven04的依赖:

java 第三方sdk 安装 java怎么安装第三方库_java 第三方sdk 安装_74


2、如果路径一样,看pom.xml 上面的优先

1、路径短的优先
2、 如果路径一样,看pom.xml 上面的优先

(五)maven的依赖排除

如果有一个项目maven01 依赖了多个jar包 junit、c3p0、jdbc 现在有一个项目maven02依赖maven01 但是maven02不想要c3p0的依赖,怎么办?

java 第三方sdk 安装 java怎么安装第三方库_生命周期_75


在maven02项目中配置依赖排除:

java 第三方sdk 安装 java怎么安装第三方库_maven_76

四、Maven的生命周期

default lifecycl 构建项目的核心部分,编译、打包、测试、部署等都在改生命周期中
site lifecycl 生成站点、项目报告

每个生命周期都是相互独立的,我们可以使用mvn clean 单独运行一个生命周期
也可以将多个生命周期写在一起来运行 mvn clean test site

每一个生命周期都有三个阶段
在生命周期中只能处于一个阶段:在命令执行的时候,只能在一个阶段运行,比如运行mvn clean命令的时候 执行过程中 可能在处于clean lifecycl 中pre-clean 阶段中。

(1)clean生命周期
pre-clean 执行清理前的准备工作
clean 执行清理命令
post-clean 执行清理后结尾的工作

(2)site
pre-site 执行生成站点前的准备工作
site 执行生成站点
post-site 执行生成站点后结尾的工作

(3)default
该生命周期是根据命令执行的 是根据最新的具体命令来决定声明周期执行内容的,在=执行的过程中 ,数据默认的顺序依次执行。