零基础快速理解Maven

简介: 零基础快速理解Maven

@TOC

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 的工作机制

在这里插入图片描述

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:模块的版本号,根据自己的需要设定
例如:
在这里插入图片描述

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 文件即可,它们是名字发生了改变,本质上是同一个文件。

相关文章
|
8月前
|
存储 Java Maven
|
3天前
|
运维 Java Maven
Maven 特点
Maven是一个遵循统一规则、高度可扩展的Java项目管理工具,强调依赖管理和自动更新。它拥有庞大的库资源,支持构建JAR、WAR等不同输出类型,同时能自动生成项目站点和标准报告。Maven与版本控制系统集成,实现无缝发布管理。其向后兼容性允许轻松迁移旧版本模块,子项目能继承父项目的依赖。并行构建提升编译效率,而改进的错误报告提供更详细的故障排查支持。
|
4天前
|
存储 Java 关系型数据库
|
9月前
|
Java 数据库连接 Maven
Maven介绍
Maven介绍
47 0
|
4天前
|
存储 XML Java
maven
maven
287 0
|
6月前
|
Java 测试技术 Maven
maven总结
maven总结
21 0
|
7月前
|
Java 应用服务中间件 Linux
01Maven - Mave介绍
01Maven - Mave介绍
20 0
|
8月前
|
Java 测试技术 数据库连接
|
9月前
|
存储 Java 程序员
Maven详解
Maven详解
238 0
|
10月前
|
Java 项目管理 Maven