Maven的安装,环境变量配置及基本使用
Maven 简介
Maven 是一个项目管理和构建自动化工具,专注于 Java 应用的开发。它通过项目对象模型(POM)来管理项目的构建、报告和文档。Maven 的主要特点包括依赖管理和项目信息管理。
Maven 的核心功能
-
依赖管理:Maven 能够管理项目中所有 jar 包的版本,确保团队成员和不同的开发环境使用相同版本的 jar 包,从而避免版本不一致导致的问题。
-
项目构建:Maven 将项目构建过程分解为一系列的阶段,如编译、测试、打包、部署等,每个阶段都可以通过 Maven 命令行工具执行。
-
跨平台:Maven 可以在多种操作系统上运行,包括 Windows、Linux 和 macOS。
-
中央仓库:Maven 提供了一个中央仓库,开发者可以从中获取所需的 jar 包,也可以将自己项目的 jar 包上传到中央仓库供他人使用。
-
插件和目标:Maven 拥有丰富的插件生态系统,每个插件都有一系列的目标(goals),这些目标定义了插件可以执行的任务。
Maven 的安装和环境变量配置
下载Maven
1.从 Apache Maven 官网或者阿里云镜像站下载 Maven 的二进制包。这里建议使用阿里云镜像站(https://mirrors.aliyun.com/apache/maven/maven-3/3.9.5/binaries/?spm=a2c6h.25603864.0.0.3194121eu7SXqa)。
2.压缩包下载成功后解压到指定目录,这里以3.9.5版本为例
3.新建maven仓库
配置环境变量
- 注意:(由于 Maven 是用 Java 编写的,因此需要先安装 JDK)
1.找到settings.xml文件,使用记事本或VSCode打开
2.找到localRepository,添加maven仓库路径,并复制到注释外使其生效
3.阿里云镜像站链接(https://developer.aliyun.com/mirror/maven?spm=a2c6h.13651102.0.0.7be81b11a1a3vK)
找到mirrors,添加阿里云镜像
4.配置系统环境变量
右击此电脑-->属性-->高级系统设置-->环境变量
(1)新建系统变量,变量值是自己安装maven的根目录
(2)找到path编辑添加如下内容
验证安装
在命令行中输入 mvn -v
来验证 Maven 是否安装成功。出现maven相关版本信息即为安装成功
Maven的基本使用
创建Maven工程
目录结构
src/main/java:存放主程序代码。
src/main/resources:存放配置文件。
src/test/java:存放测试代码。
src/test/resources:存放测试配置文件。
target:构建过程中生成的文件(需要运行代码,产生编译文件,后才会出现)。
生命周期
Maven 的生命周期包括 Clean、Default 和 Site 三个部分,涵盖了从清理到构建、测试、打包、安装和部署的全过程。
Maven 坐标
Maven 使用坐标(groupId, artifactId, version)来唯一标识一个项目或依赖。坐标定义了项目在本地仓库中的存储路径。
pom
配置文件
<?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>
<groupId>com.shujia</groupId>
<artifactId>Bigdata32</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
//当前工程下的子工程
<modules>
<module>maven-Demo1</module>
<module>maven-Demo2</module>
<module>maven-Demo3</module>
</modules>
//properties配置文件
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
//添加版本号,方便同一版本,子类中添加依赖时就不需要增加版本号
<junit.version>4.13.2</junit.version>
<hadoop.version>3.1.2</hadoop.version>
</properties>
//添加依赖管理,添加后只有在子工程中用到时才会下载使用
<dependencyManagement>
<dependencies>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
</dependency>
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-common -->
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
//使用${×××.version}引用版本号
<version>${hadoop.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-client -->
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>${hadoop.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-hdfs -->
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>${hadoop.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>5.1.0</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
继承关系
1、在同一个pom.xml文件中,若依赖相同只是版本号不同的话,后写的版本会将上面写的版本覆盖掉
2、子工程若出现与父工程依赖相同但是版本不同的现象,子工程保持自己的依赖版本【会将父类依赖版本覆盖】
3、若A工程中导入了B,C两个工程,且B,C两个工程中有相同的依赖只是版本号不同,那么最终使用的依赖版本是取决于谁先写
Maven 依赖管理
依赖范围
compile:默认值,适用于所有环境。
test:仅在测试环境中有效。
provided:在编译和测试时有效,但在运行时由容器提供,不可以被打包