零基础快速理解Maven

简介: 零基础快速理解Maven

Maven概述


为什么要学习Maven?


1.Maven 作为依赖管理工具

在很多大型的框架中会用到到很多的jar包,maven可以帮助我们去管理这些jar包。包括引入,自动下载.

2.Maven 作为构建管理工具


什么是 Maven?


Maven 是 Apache 软件基金会组织维护的一款专门为 Java 项目提供构建和依赖管理支持的工具

1、构建


Java 项目开发过程中,构建指的是使用Java 源代码,基于 HTML 的 Thymeleaf 文件,图片,配置文件的过程。

构建过程包含的主要的环节:


清理:

删除上一次构建的结果,为下一次构建做好准备

编译:

Java 源程序编译成 *.class 字节码文件

测试:

运行提前准备好的测试程序

报告:

针对刚才测试的结果生成一个全面的信息

打包:

Java工程:jar包Web工程:war包

安装:

把一个 Maven 工程经过打包操作生成的 jar 包或 war 包存入 Maven 仓库

部署

部署 jar 包:把一个 jar 包部署到 Nexus 私服服务器上

部署 war 包:借助相关 Maven 插件(例如 cargo),将 war 包部署到 Tomcat 服务器上


2.依赖


如果 A 工程里面用到了 B 工程的类、接口、配置文件等等这样的资源,那么我们就可以说 A 依赖 B。

依赖管理中要解决的具体问题:


jar 包的下载:使用 Maven 之后,jar 包会从规范的远程仓库下载到本地

jar 包之间的依赖:通过依赖的传递性自动完成

jar 包之间的冲突:通过对依赖的配置进行调整,让某些jar包不会被导入


Maven 的工作机制

484e7c9994724f878f427ead82867709.png



maven下载,仓库配置,环境配置


为啥要配置本地仓库,远程仓库?


本地仓库:

本地仓库默认值:用户家目录/.m2/repository。由于本地仓库的默认位置是在用户的家目录下,而家目录往往是在 C 盘,也就是系统盘。将来 Maven 仓库中 jar 包越来越多,仓库体积越来越大,可能会拖慢 C 盘运行速度,影响系统性能。所以建议将 Maven 的本地仓库放在其他盘符下。

远程仓库:

配置阿里云提供的镜像仓库

Maven 下载 jar 包默认访问境外的中央仓库,而国外网站速度很慢。改成阿里云提供的镜像仓库,访问国内网站,可以让 Maven 下载 jar 包的时候速度更快。

Maven 是一个用 Java 语言开发的程序,它必须基于 JDK 来运行,需要通过 JAVA_HOME 来找到 JDK 的安装位置。

具体过程见:maven下载,仓库配置,环境配置


使用 Maven


核心概念:坐标


使用maven之前先理解maven中的核心概念

坐标

使用坐标可以在Maven的仓库中唯一的定位到一个jar包。

涉及到三个向量:

groupId:公司或组织域名的倒序,通常也会加上项目名称

artifactId:模块的名称,将来作为 Maven 工程的工程名

version:模块的版本号,根据自己的需要设定

例如:

d2ad706b30b5423197f9169afe1bc443.png


Maven 的构建命令


清理操作


mvn clean

效果:删除 target 目录


编译操作


主程序编译:mvn compile

测试程序编译:mvn test-compile

主体程序编译结果存放的目录:target/classes

测试程序编译结果存放的目录:target/test-classes


测试操作


mvn test

测试的报告存放的目录:target/surefire-reports


打包操作


mvn package

打包的结果——jar 包,存放的目录:target


安装操作


mvn install

安装的效果是将本地构建过程中生成的 jar 包存入 Maven 本地仓库。这个 jar 包在 Maven 仓库中的路径是根据它的坐标生成的。

另外,安装操作还会将 pom.xml 文件转换为 XXX.pom 文件一起存入本地仓库。所以我们在 Maven 的本地仓库中想看一个 jar 包原始的 pom.xml 文件时,查看对应 XXX.pom 文件即可,它们是名字发生了改变,本质上是同一个文件。

相关文章
|
4天前
|
Java Maven 开发工具
Maven 特点
Maven是一个遵循统一规则、强调项目设置共享的构建工具。它提供依赖管理,自动更新库,并拥有庞大的库资源。Maven支持扩展,可编写Java或脚本插件,新功能通常无需额外配置。基于模型的构建允许它生成多种输出类型,如JAR或WAR,同时能自动生成项目站点和报告。发布管理功能使其能与版本控制系统集成,发布项目到不同位置。 Maven保持向后兼容性,子项目可继承父项目依赖,编译速度快,平行构建提升效率20-50%,且提供改进的错误报告链接。
|
9月前
|
Java 数据库连接 Maven
Maven介绍
Maven介绍
45 0
|
6月前
|
Java 测试技术 Maven
maven总结
maven总结
20 0
|
7月前
|
Java 应用服务中间件 Linux
01Maven - Mave介绍
01Maven - Mave介绍
20 0
|
7月前
|
安全 Java 应用服务中间件
Maven-1
Maven-1
29 0
|
8月前
|
Java Maven
|
8月前
|
Java 测试技术 数据库连接
|
9月前
|
存储 Java 程序员
Maven详解
Maven详解
230 0
|
9月前
|
Java 应用服务中间件 Maven
关于Maven,你真的了解它吗?(上)
关于Maven,你真的了解它吗?(上)
|
11月前
|
Java 应用服务中间件 Apache
maven
maven
91 0