Maven基础(一)

目录

一、Maven基础概念

[1. Maven概念](#1. Maven概念)

[2. Maven的作用](#2. Maven的作用)

[3. 自动化构建步骤](#3. 自动化构建步骤)

二、Maven安装与配置

[1. 下载](#1. 下载)

[2. 配置:](#2. 配置:)

三、Maven约定的目录结构

四‌、Maven中的POM文件‌

[1. 概念](#1. 概念)

[2. pom.xml文件的结构](#2. pom.xml文件的结构)

五、Maven坐标

[1. 概念](#1. 概念)

[2. 坐标与路径的对应关系](#2. 坐标与路径的对应关系)

六、Maven仓库

[1. 概念](#1. 概念)

[2. Maven仓库分为](#2. Maven仓库分为)

[3. Maven仓库相关网址](#3. Maven仓库相关网址)


一、Maven基础概念

1. Maven概念

Maven是一个跨平台项目管理工具,基于Apache License 2.0协议,需JDK 8及以上运行环境。它通过POM(项目对象模型)管理项目依赖、构建流程和插件,解决传统Java项目中的jar包冲突、版本混乱等问题。 ‌

自动化构建工具发展:

Make --> Ant --> Maven--> Gradle

2. Maven的作用

(1) 实现jar包的统一管理

1)jar包仅保存在"仓库"中,通过groupId、artifactId和version引用仓库中的jar包,并不需要真的把jar包复制过来。

2)管理jar包之间的依赖关系,自动关联下载所有依赖的jar,并且不会冲突。

3)若本地仓库没有所需的jar包,Maven会从中央仓库下载后存入本地仓库再引用。

(2) 将项目拆分成若干个模块,有助于管理和维护项目。

每个模块可以独立构建、测试和部署,同时它们又可以相互依赖,形成一个完整的应用程序。

3. 自动化构建步骤

(1) 清理(Clean)‌:

删除旧编译文件,为重新编译做准备。

(2) 编译(Compile)‌:

将Java源码编译为.class文件。

(3) 测试(Test)‌:

自动执行测试代码,验证功能正确性,支持批量测试。

(4) 报告(Report)‌:

生成测试结果文档,记录测试通过情况。

(5) 打包(Package)‌:

将工程文件打包为可部署格式(如jar/war),支持分布式部署。

① java项目打成jar包。

② web项目打成war包。

(6) 安装(Install):

将打成的包放到本地仓库。

(7) 部署(Deploy):

将打成的包部署到远程仓库或部署到服务器上准备运行。

说明:

自动化构建运行任何一个阶段的时候,它前面的所有阶段都会被运行,例如我们运行 install 的时候,代码会被编译,测试,打包。

二、Maven安装与配置

1. 下载

点击 跳转 到Maven官网下载地址,找到Files,点击Link下对应的链接进行下载。

说明:

Binary tar.gz archive(二进制linux)

Binary zip archive(二进制Windows)

Source tar.gz archive(源代码linux)

Source zip archive(源代码Windows)

2. 配置:

(1) 配置JAVA_HOME

配置Maven之前需要配置JAVA_HOME,若未配置JAVA_HOME,安装Maven时会出现错误提示"JAVA_HOME not found"。

(2) 解压官网下载的Maven程序

(3) 配置MAVEN_HOME或M2_HOME

复制代码
配置根目录:
D:\apache-maven-3.9.11

(4) 配置path

复制代码
%MAVEN_HOME%\bin

(5) 配完后进行验证

复制代码
在cmd中执行:
mvn -v
显示Maven版本信息则说明配置成功

(6) 配置本地仓库

路径: maven安装目录/conf/settings.xml文件
1)不配置时,默认本地仓库见settings.xml文件

复制代码
<!-- localRepository (说明:本地仓库)
	Default: ${user.home}/.m2/repository(说明:本地仓库默认路径)
	<localRepository> /path/to/local/repo</localRepository>(说明:这句话复制出来后改成自己的路径就是修改了本地仓库配置)
-->

2)修改本地仓库位置

① 找到maven安装目录/conf/settings.xml文件

② 修改本地仓库目录:

复制代码
<localRepository> D:/repository</localRepository>

三、Maven约定的目录结构

Maven项目遵循特定的目录结构约定,例如:src/main/java用于Java源代码,src/test/java用于测试代码等。这种结构有助于工具和插件自动识别和处理代码。

(1) Maven约定的目录结构:

复制代码
工程名
	src(源码)
		main(程序功能代码)
			java(java源代码)
			resources(资源文件)
		test(测试代码)
			java(java测试源代码)
			resources(测试资源文件)
	pom.xml(Maven工程的核心配置文件)

(2) 使用Maven的原则:

约定 > 配置 > 编码

四‌、Maven中的POM文件‌

1. 概念

POM(Project Object Model):项目对象模型的简称。

Maven项目的核心是pom.xml文件,它定义了项目的元数据、依赖、插件配置等。

2. pom.xml文件的结构

复制代码
<groupId>域名翻转.项目名</groupId>
<artifactId>模块名</artifactId>
<version>版本号</version>

<name>名字</name>(<name>一般与<artifactId>一样)

<dependencies>(里面可以有多个<dependency>)
    <dependency>依赖包1</dependency>
    <dependency>依赖包2</dependency>
    <dependency>依赖包3</dependency>
</dependencies>

例:

复制代码
<groupId>org.inferno.maventest</groupId>
<artifactId>HelloWorld</artifactId>
<version>1.0.0</version>

<name>HelloWorld</name>

<dependencies>
	<dependency>
		<groupId>com.alibaba</groupId>
		<artifactId>fastjson</artifactId>
		<version>1.0.0</version>
	</dependency>
	<dependency>
		<groupId>org.apache.logging.log4j</groupId>
		<artifactId>log4j-core</artifactId>
		<version>1.0.0</version>
	</dependency>
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-web</artifactId>
		<version>1.0.0</version>
	</dependency>
</dependencies>

五、Maven坐标

1. 概念

使用groupId、artifactId、version三个元素在仓库中唯一定位一个Maven工程,简称gav

<groupId>域名翻转+项目名</groupId>

<artifactId>模块名</artifactId>

<version>版本号</version>

2. 坐标与路径的对应关系

例:

如果settings.xml中本地仓库的位置为:

复制代码
<localRepository> D:/repository</localRepository>

如果pom.xml中的坐标为:

复制代码
<groupId>org.inferno.maventest</groupId>
<artifactId>HelloWorld</artifactId>
<version>1.0.0</version>

**则:**此本地仓库放入的位置为:

复制代码
D:/repository/org/inferno/maventest/HelloWorld/1.0.0

六、Maven仓库

1. 概念

用于储存资源,管理jar包。

2. Maven仓库分为

(1) 本地仓库

当前电脑上配置的Maven仓库目录。

(2) 远程仓库

① 私服:一般是公司搭建的私有仓库,私服一般是通过Nexus搭建。

② 中央仓库:Maven官方维护的全球唯一仓库。

③ 中央仓库镜像:是中央仓库的副本,为了分担中央仓库的流量。

**说明:**在pom.xml添加依赖后,项目先在本地仓库查找依赖。若没有,则从远程仓库查找并下载,若还是没有,从中央仓库查找。

3. Maven仓库相关网址

(1) Maven中央仓库的默认地址

https://repo.maven.apache.org/maven2/

**说明1:**由Apache维护,包含所有标准开源库的依赖项,支持依赖下载,属于官

方公共仓库。

**说明2:**在Maven配置文件中,若未指定仓库,默认会从此地址获取依赖。 ‌

(2) maven依赖查询网站:

https://mvnrepository.com/

https://central.sonatype.com/

**说明:**两个提供Maven依赖库的搜索功能,并获得依赖的GAV。

相关推荐
小池先生2 小时前
idea配置代码注释模板
java·ide·intellij-idea
摇滚侠3 小时前
Spring Boot3零基础教程,Reactive-Stream 规范核心接口,笔记103
java·spring boot·笔记
csbysj20203 小时前
SQLite Truncate Table: 完全删除表中的数据
开发语言
tung tung tung sahur3 小时前
领略 Rust 抽象之美:自定义迭代器实现全解析
开发语言·后端·rust
ftpeak3 小时前
《Rust MP4视频技术开发》第八章:生成MP4
开发语言·rust·音视频·mp4
程序猿小蒜3 小时前
基于springboot的校园社团信息管理系统开发与设计
java·前端·spring boot·后端·spring
兔兔爱学习兔兔爱学习3 小时前
Spring Al学习9:模型上下文协议(MCP)
java·学习·spring
m0_748248023 小时前
Spring MVC中@RequestMapping注解的全面解析
java·spring·mvc
Mos_x3 小时前
28.<Spring博客系统⑤(部署的整个过程
java·后端