Maven基础(一)
目录
一、Maven基础概念
1. Maven概念
2. Maven的作用
3. 自动化构建步骤
二、Maven安装与配置
1. 下载
2. 配置:
三、Maven约定的目录结构
四、Maven中的POM文件
1. 概念
2. pom.xml文件的结构
五、Maven坐标
1. 概念
2. 坐标与路径的对应关系
六、Maven仓库
1. 概念
2. 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。
