一、概述
介绍: Apache Maven是- -个项目管理和构建工具,它基于项目对象模型
(POM Project Object Model)的概念,通过一小段描述信息来管理项目的构建。
作用:
➢方便的依赖管理
➢统一的项目结构
➢标准的项目构建流程
官网: Maven -- Welcome to Apache Maven
仓库: 用于存储资源,管理各种jar包。
➢本地仓库:自己计算机上的-一个目录。(在安装的时候可以选择)
➢中央仓库: 由Maven团队维护的全球唯一的。
➢中央仓库地址: https://repo1.maven.org/maven2/
➢远程仓库(私服): 一般由公司团队搭建的私有仓库。
➢查找顺序:现在本地找,本地没有去远程仓库找,远程没有才会去中央仓库找
安装步骤: (大多数情况下都不会去本地安装)
第一步:下载maven,下载地址:Maven -- Download Apache Maven
第二步:配置本地仓库:修改conf/settings.xml中的<localRepository>为一个指定目录。
<localRepository>D:\develop\apache-maven-3.6.1\mvn_ repo</localRepository>
第三步:配置阿里云私服:
修改conf/settings.xml中的<mirrors>标签,为其添加如下子标签:
XML
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url> http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
第四步:配置环境变量: MAVEN_ HOME为maven的解压目录,并将其bin目录加
入PATH环境变量。
① 复制maven的安装目录,在此电脑上右键→属性→高级系统设置→环境变量→系统
变量下新建 ,输入变量名和安装目录确定
② 接着向下拉系统变量,选择path→新建→%MAVEN_HOME%\bin
二、idea集成
新建项目project的配置
1.配置Maven环境
选择IDEA中File --> Settings --> Build,Execution,Deployment --> Build Tools --> Maven
设置IDEA使用本地安装的Maven,并修改配置文件及本地仓库路径
打开maven选择Runner设置JRE
选择Compiler下的Java Compiler 去设置
上面是根据项目进行配置,下面是全局配置的方法
idea中选择File--> Close Project --> Customize --> All setting
之后的操作步骤单个项目的配置是一样的
2.创建Maven项目
① 创建模块,选择Maven,'"点击Next
点击File --> New --> Module
② 填写模块名称,坐标信息,点击finish, 创建完成
finish之后,等待maven的下载,完成之后配置文件是pom.xml
③ 编写HelloWorld,并运行
Maven项目的工程结构,text下没有resources文件夹,是因为这个文件夹在Text中不常用,
所以Maven没有创建,可以text文件夹上手动右键创建一个文件夹,会直接有提示
当我们新建一个个类并且运行起来,会发现项目目录结构够多了一个target文件夹,
这个文件夹中存放的是自编码类
Maven坐标
Maven中的坐标是资源的唯一标识,通过该坐标可以唯一定位资源位置
使用坐标来定义项目或引入项目中需要的依赖。
Maven坐标的主要组成
**groupId:**定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.baidu)
**artifactId:**定义当前Maven项目名称(通常是模块名,例如:order-service)
**version:**定义当前项目版本号
XML
<groupld>com.XXXa</groupld>
<artifactld>maven-project</ artifactld>
<version>1.0-SNAPSHOT</version>
<!--项目依赖-->
<dependency>
<groupld>ch.qos.logback</groupld>
<artifactld>logback-classic</ artifactld>
<version>1.2.3</version>
</dependency>
3.导入Maven项目
**方式一:**打开IDEA,选择右侧Maven面板,,点击+号,选中对应项目的pom.xml文件,双击即可。
如果右侧没有maven面板就按照下面的方式调出来
**方式二:**打开IDEA,选择右侧Maven面板,点击+号,选中对应项目的pom.xml文件,双击即可。
三、依赖管理
1.依赖配置
**依赖:**指当前项目运行所需要的jar包,一个项目中可以引入多个依赖
配置:
1> 在 pom.xml中编写<dependencies>标签
2> 在<dependencies>标签中 使用<dependency>引入坐标
3> 定义坐标的 groupld,artifactld,version
XML
<dependencies>
<dependency>
<groupld>ch.qos.logback</groupld>
<artifactld>logback-classic</artifactld>
<version>1.2.3</version>
</dependency>
</dependencies>
4> 点击刷新按钮,引入最新加入的坐标
注意:
① 如果引入的依赖,在本地仓库不存在,将会连接远程仓库/中央仓库,然后下载依赖。
(这个过程会比较耗时,耐心等待)
② 如果不知道依赖的坐标信息,可以到https://mvnrepository.com/中搜索。
2.依赖传递
依赖具有传递性:
直接依赖: 在当前项目中通过依赖配置建立的依赖关系
**间接依赖:**被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源
排除依赖:
排除依赖指主动断开依赖的资源,被排除的资源无需指定版本。
XML
<dependency>
<groupId>com.cccc</groupId>
<artifactId>maven-projectB</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 排除依赖,不需要制定版本-->
<exclusions>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
3.依赖范围
依赖的jar包,默认情况下,可以在项目的任何地方使用。
作用范围:
主程序范围有效。(main文件夹范围内)
测试程序范围有效。(test文件夹范围内)
是否参与打包运行。(package指令范围内)
可以通过<scope>...</scope>设置其作用范围:
compile(默认): 主程序、测试程序、打包(运行),例如:log4j
test: 测试程序,例如:junit
provided: 主程序、测试程序,例如:servlet-api
runtime: 测试程序、打包(运行),例如:jdbc驱动
4.生命周期
Maven的生命周期就是为了对所有的maven项目构建过程进行抽象和统
Maven中有3套相互独立的生命周期
clean: 清理工作。
主要阶段: clean 移除上一次构建生成的文件
default: 核心工作,如:编译、测试、打包、安装、部署等。
主要阶段:compile 编译项目源代码
test 使用合适的单元测试框架运行测试(junit)
package 将编译后的文件打包,如:jar、war等
install 安装项目到本地仓库
**site:**生成报告、发布站点等。 (这一生命周期很少用到)
Maven的包中已经加载了这些主要的阶段
注意: 在同一套生命周期中,当运行后面的阶段时,前面的阶段都会运行。想要跳过某个阶段可以
选中某个阶段然后点击右侧上面的蓝色闪电图标,如下图:
执行指定生命周期的两种方式:
在idea中,右侧的maven工具栏,选中对应的生命周期,双击执行。(常用)
在命令行中,通过命令执行mvn clean、 mvn compile、mvn compile、mvn package、mvn test
注意:要在项目文件夹中执行