文章目录
简介
Maven 是一个非常流行的项目管理和构建自动化工具,主要应用于 Java 项目的构建、依赖管理和项目信息管理。它是由 Apache 软件基金会维护的开源项目。Maven 的设计理念是通过一个项目对象模型(Project Object Model, POM)来描述项目,并使用声明式的方式定义构建过程。
Maven就是是专门为 Java 项目打造的管理和构建工具,它的主要功能有:
- 提供了一套标准化的项目结构;
- 提供了一套标准化的构建流程(编译,测试,打包,发布......);
- 提供了一套依赖管理机制。
官方下载地址: http://maven.apache.org/download.cgi
安装需要 Java 支持( JDK >= 1.7)
解压压缩包至目录,推荐安装位置:D:\apache-maven-3.5.2
tex
bin:mvn的运行脚本
boot:mvn类加载器框架
conf:配置文件目录
lib:依赖类库
配置
环境变量
配置仓库
配置本地仓库
D:\apache-maven-3.5.2\conf\settings.xml
xml
<localRepository>D:/MavenRepository/repository/</localRepository>
配置阿里云镜像仓库
由于中央存储库在国外,国内可能打不开,所以在 mirrors 标签中添加阿里云镜像仓库配置。
xml
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>*</mirrorOf>
</mirror>
测试安装
打开 cmd,输入 mvn -v
IDEA创建项目
关闭已打开的项目,进入IDEA全局配置界面。
配置Maven的路径和用户设置文件的位置
- Maven home path:
D:\apache-maven-3.5.2
- User settings file:
D:\apache-maven-3.5.2\conf\settings.xml
新建项目,选择 Maven Archetype
,如下图所示(IDEA2023)。部署 Tomcat 步骤同 Javaweb 项目一样。
Maven 生命周期是一系列按顺序执行的阶段,用于完成项目的构建流程。
- clean : 清理项目的工作目录,删除之前构建产生的临时文件。
- validate: 验证项目的有效性,检查是否满足所有要求。
- compile : 编译项目的源代码。
- test : 执行单元测试,但不打包或安装任何东西。
- package : 将已编译的代码打包成可发布的格式,如 JAR 或 WAR 文件。
- verify: 在发布前对包进行验证,确保其符合所有标准。
- install : 将包安装到本地仓库,使其可用于其他 Maven 项目作为依赖。
- site: 生成项目的站点文档,通常包含关于项目的信息、报告和其他元数据。
- deploy: 将包部署到远程仓库,使其他人可以通过网络访问该包。
除了生命周期之外,在 Maven 工具窗口还可以看到 "Plugins" 和 "Dependencies" 标签页,分别用于管理项目的插件和依赖项。
pom.xml
pom.xml
是 Maven 项目的核心配置文件,它包含了构建项目所需的所有信息,如依赖关系、构建目录、插件等。
项目描述
xml
<!-- 指定当前 pom 的版本 -->
<modelVersion>4.0.0</modelVersion>
<!-- 公司或者组织的唯一标志,由此生成配置时生成的路径 -->
<groupId>org.example</groupId>
<!-- 项目的唯一 ID,一个 groupId 下面可能多个项目,就是靠 artifactId 来区分的 -->
<artifactId>maven01</artifactId>
<!-- 打包方式 一般为 jar、war、zip 或者 pom -->
<packaging>war</packaging>
<!-- 版本号 -->
<version>1.0-SNAPSHOT</version>
<!-- 项目描述名 -->
<name>maven01 Maven Webapp</name>
<!-- 项目官方网站地址, Apache Maven 官方网站地址示例 -->
<url>http://maven.apache.org</url>
引入 jar 包
xml
<!-- 包含所有项目依赖的外部库 -->
<dependencies>
<!-- 定义单独的依赖项 -->
<dependency>
<!-- 依赖项的组 ID,类似于 Java 包名 -->
<groupId>junit</groupId>
<!-- 依赖项的项目 ID,类似于 Java 类名 -->
<artifactId>junit</artifactId>
<!-- 依赖项的具体版本 -->
<version>4.11</version>
<!-- 依赖项的作用范围 -->
<scope>test</scope>
</dependency>
<!-- 可以添加更多依赖项 -->
<dependency>
......
</dependency>
</dependencies>
scope
常见的作用范围包括:
compile
:默认值,表示该依赖项在编译、测试和运行时都需要。provided
:表示该依赖项在编译和测试时需要,但在运行时由容器或其他系统提供。runtime
:表示该依赖项在运行时需要,但在编译时不需要。test
:表示该依赖项仅在测试时需要,不会被打包到最终的发布物中。system
:表示该依赖项需要从本地文件系统中获取,而不是从远程仓库下载。
jar搜索地址: https://mvnrepository.com/artifact/org.springframework(需验证)
详细说明: https://www.runoob.com/maven/maven-pom.html(菜鸟教程)
设置统一版本号
xml
<!-- 设置版本号 -->
<properties>
<srping.version>4.0.2.RELEASE</srping.version>
<mybatis.version>3.2.8</mybatis.version>
<slf4j.version>1.7.12</slf4j.version>
<log4j.version>1.2.17</log4j.version>
</properties>
<!-- 引用版本号 -->
<version>${srping.version}</version>