一、Maven简介
1.1在项目中如何导入jar包?
- 下载jar包
- 将下载的jar包拷贝到项目中(WEB-INF/lib)
- 选择jar文件--右键--Add as Library
1.2传统导入jar包的方式存在什么样的弊端呢
- 步骤多 ----
繁琐
- 在不同的项目中如果需要相同的jar包,需要分别存储这个jar文件 ----
冗余、项目体积大
- 在不同的环境下可能因为jar文件版本不一致导致项目无法运行(需要重新配置)----
移植性差
1.3项目生命周期
项目从编译到运行的整个过程
完整的生命周期:清理缓存-----校验----编译----测试----打包----安装----部署
- IDEA 提供了一键构建项目的功能,但是如果我们需要自定义的生命周期管理,却没有想成的工具(清理缓存)
1.4Maven简介
Maven是一个
基于项目对象模型(POM)用于进行项目的依赖管理、生命周期的
工具软件
核心功能
- 依赖管理
- 生命周期管理
- 聚合工程
二、Maven安装及配置
2.1Maven下载
- Maven官网:https://maven.apache.org/index.html
2.2Maven安装
Maven是基于Java语言进行开发的,因此依赖JDK(建议JDK1.7+)
开箱即用:直接解压即可使用
-
下载好之后解压到电脑的某个目录里面(自己记住在哪里就行)
-
目录结构
- bin:存放指令文件(Maven提供了一个mvn指令)
- boot:包含了一个类加载框架的jar文件
- conf:包含了Maven的核心配置文件settings.xml
- lib:存放了Maven运行所需要的jar文件
测试
|
三、Maven的项目结构
使用Maven进行项目开发还有一个好处:无论使用什么样的开发工具(eclipse、idea)项目的结构是统一的
3.1项目的结构
Maben_java2(项目名)
–src
--main(存放项目的源文件)
--java(存放java代码,相当于传统项目中的src目录)
--resourses(存放配置文件和静态资源的目录,相当于传统项目的web目录)
--test(存放项目的党员测试代码)
–pom.xml
3.2 pom.xml
POM Project Object Model,Maven可以根据pom文件的配置对此项目进行依赖管理;也就是说项目中需要依赖,直接在pom.xml进行配置即可
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- 指定项目模型版本-->
<modelVersion>4.0.0</modelVersion>
<!-- 指定项目的标识:G:企业标识 A:项目标识 V:版本-->
<groupId>com.luo</groupId>
<artifactId>Maven_java</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
</dependencies>
</project>
如果需要在当前项目中添加依赖,只需要在pom.xml中进行依赖配置即可
**配置依赖:**找到依赖的坐标,添加到dependencies标签即可
<dependencies>
<!--mysql jar包的依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
</dependencies>
四、依赖管理
4.1Maven仓库介绍
- 本地仓库:就是本地计算机的某个文件夹(可以是自定义的任何文件夹)
- 远程仓库:就是远程主机上的jar文件仓库
- 中央仓库:maven官方提供的仓库,包含了所需的一切依赖(免配置)
- 公共仓库:除了中央仓库以外的第三发仓库都是公共仓库。例如:aliyun(需要配置)
- 私服:企业搭建的供内部使用的maven仓库
4.2Maven仓库配置
在conf/settings.xml
中进行配置
配置本地仓库
<!--本地仓库的路径,可以随意创建目录,只需要把路径拷贝到此处即可-->
<localRepository>/Users/gen_hua/Desktop/Java_note/repository</localRepository>
配置公共仓库
<!-- 配置阿里的镜像 -->
</mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>nexus-aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
五、生命周期管理
5.1生命周期介绍
项目构建的声明周期:项目开发结束之后部署到运行环境进行的过程
- 清除缓存
- 检查
- 编译
- 测试(就会执行maven项目中的test目录下的单元测试)
- 打包(war,jar)
- 安装(jar会被安装到本地仓库)
- 部署(将项目生成的包放到服务器中)
5.2生命周期管理命令
- 清除缓存
mvn clean
- 检查
mvn check
- 编译
mvn compile
- 测试
mvn test
- 打包
mvn package
- 安装
mvn install
- 部署
mvn deploye
六、基于IDEA的Maven使用
6.1在IDEA中关联Maven
maven配置 |
---|
![]() |
说明:IDEA本身集成了Maven,考虑到IDEA和Maven的兼容性,IDEA不建议配置比默认版本更新的版本,建议使用IDEA自带的Maven
6.3依赖范围
在通过dependency添加依赖时,可以通过scope标签配置当前依赖的使用范围
- test:只在项目测试阶段引入当前依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
- runtime:只在运行时使用(编译、运行、测试运行)
- provided:在编译、测试、运行时使用
- compile:所有阶段中都会使用