Maven
初识Maven
什么是Maven
Maven是Apache旗下的一个开源项目,是一款用于管理和构建java项目的工具。
Maven的作用
1)依赖管理
方便快捷的管理项目依赖的资源(jar包),避免版本冲突问题
2)统一项目结构
提供标准、统一的项目结构
3)项目构建
maven提供了标准的、跨平台(Linux、Windows、MacOS) 的自动化项目构建方式
Maven概述
Maven仓库
-
本地仓库:自己计算机上的一个目录(用来存储jar包),我的仓库地址:D:\apache-maven-3.8.8\mvn_repo
-
中央仓库:由Maven团队维护的全球唯一的。仓库地址:https://repo1.maven.org/maven
-
远程仓库(私服):一般由公司团队搭建的私有仓库,这里附上阿里云私服地址:
<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>
jar包查找顺序:本地仓库–>远程仓库(私服)–> 中央仓库
Maven安装
下载
注意:jdk17与Maven3.6.1不适配,安装时会报错
可用jdk11 与 Maven3.6.1
或jdk17 与 Maven 3.8.8
附上Maven下载地址:https://maven.apache.org/download.cgi
安装
1)解压安装
2)配置本地仓库
就是新建文件夹,附上我的本地仓库地址 D:\apache-maven-3.8.8\mvn_repo
3)配置阿里云私服
由于中央仓库在国外,所以下载jar包速度可能比较慢,而阿里公司提供了一个远程仓库,里面基本也都有开源项目的jar包。
进入到conf目录下修改settings.xml配置文件:
1). 使用ideae,打开settings.xml文件,定位到160行左右
2). 在<mirrors>标签下为其添加子标签(子标签在上面的阿里云私服地址)
4)配置环境变量
1). 在系统变量处新建一个变量MAVEN_HOME
MAVEN_HOME环境变量的值,设置为maven的解压安装目录 D:\apache-maven-3.8.8
2). 在Path中进行配置
PATH环境变量的值,设置为:%MAVEN_HOME%\bin
3)打开cmd验证,输入mvn -v出现版本号即为成功
idea集成Maven
自用版本号
idea版本2023专业版
jdk17
Maven3.8.8
配置Maven环境 全局设置
1、进入到IDEA欢迎页面
选择 IDEA中 File => close project
2、点击Customize,打开 All settings , 选择 Build,Execution,Deployment => Build Tools => Maven
3)配置工程的编译版本17,选17(选与自己jdk版本相同的)
创建Maven项目
(适用于idea2023专业版)
1)左上角fiel -> new -> Module…
2)按图中勾选即可成功创建
在Maven项目中输出Hello Maven
Maven项目的目录结构:
maven-project01
|— src (源代码目录和测试代码目录)
|- – main (源代码目录)
|— java (源代码java文件目录)
|— resources (源代码配置文件目录)
|— test (测试代码目录)
|— java (测试代码java目录)
|— resources (测试代码配置文件目录)
|— target (编译、打包生成文件存放目录)
运行hello maven时出现的问题
问题一
maven报错:不支持发行版本5
解决方案:file->project structure 这两个地方改成与jdk版本一致
问题二
maven报错:不再支持源选项 5。请使用 7 或更高版本。
解决方案(永久性解决):在settings.xml文件中找到标签<profiles>,在里面新建一个字标签<profile> 在里面添加jdk版本说明。根据自己的jdk版本进行相应修改。
<profile>
<id>jdk-17</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>17</jdk>
</activation>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>
</profile>
依赖管理
依赖配置
什么是依赖
依赖:指当前项目运行所需要的jar包。一个项目中可以引入多个依赖
依赖配置步骤
- 在pom.xml中编写标签 <dependencies> <dependency>
- 在标签中使用引入坐标
- 定义坐标的 groupId、artifactId、version
- 刷新
依赖传递
依赖具有传递性
依赖传递分为
a.直接依赖:在当前项目中通过依赖配置建立的依赖关系
b.间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源
排除依赖
问题:之前我们讲了依赖具有传递性。那么A依赖B,B依赖C,如果A不想将C依赖进来,是否可以做到?
答案:在maven项目中,我们可以通过排除依赖来实现
排除依赖:指主动断开依赖的资源。(被排除的资源无需指定版本),使用:<exclusions>标签排除依赖
依赖范围
依赖范围设置标签
<scope>
标签取值范围
生命周期
介绍
Maven的生命周期就是为了对所有的构建过程进行抽象和统一。 描述了一次项目构建,经历哪些阶段。
阶段
主要关注以下生命周期
• clean:移除上一次构建生成的文件
• compile:编译项目源代码
• test:使用合适的单元测试框架运行测试(junit)
• package:将编译后的文件打包,如:jar、war等
• install:安装项目到本地仓库
说明
在同一套生命周期中,我们在执行后面的生命周期时,前面的生命周期都会执行。
执行
方式一:在idea工具右侧的maven工具栏中,选择对应的生命周期(Lifecycle),双击执行
方式二:在命令行中执行生命周期
1)进入到DOS命令行
2. mvn + 生命周期,回车执行