maven简介
初步了解
Maven 是一个依赖管理工具
Maven 是一个构建工具
之前我们没用 Maven,但是构建是由 IDEA 帮我们做的,脱离 IDE 环境仍需构建。
Maven 介绍
Maven 是一款为 Java 项目管理构建、依赖管理的工具(软件),使用 Maven 可以自动化构建、测试、打包和发
布项目,大大提高了开发效率和质量。
依赖管理:
Maven 可以管理项目的依赖,包括自动下载所需依赖库、自动下载需要的依赖并且保证版本没有冲突、依赖版本
管理等。通过 Maven,我们可以方便地维护项目所依赖的外部库,避免版本冲突和转换错误等,而我们仅仅需要
编写配置即可。
项目构建:
项目构建是指将源代码、配置文件、资源文件等转化为能够运行或部署的应用程序或库的过程。
Maven 可以管理项目的编译、测试、打包、部署等构建过程。通过实现标准的构建生命周期,Maven 可以确保每
一个构建过程都遵循同样的规则和最佳实践。同时,Maven 的插件机制也使得开发者可以对构建过程进行扩展和
定制。主动触发构建,只需要简单的命令操作即可。
基于 IDEA 创建 Maven 工程
Maven 工程的 GAVP 介绍
Maven 工程相对之前的项目,多出一组 gavp 属性,gav 需要我们在创建项目的时候指定,p 有默认值,我们先行
了解下这组属性的含义:
Maven 中的 GAVP 是指 GroupId、ArtifactId、Version、Packaging 这四个属性的缩写,其中前三个是必要的,而
Packaging 属性为可选项。这四个属性主要为每个项目在 maven 仓库中做一个标识,类似人的姓-名!有了具体标
识,方便后期项目之间相互引用依赖等。
GAV 遵循以下规则:
GroupID 格式:com.{公司/BU }.业务线.[子业务线],最多 4 级
说明:{公司/BU} 例如:alibaba/taobao/tmall/aliexpress 等 BU 一级;子业务线可选。
正例:com.taobao.pay 或 com.alibaba.sourcing.multilang
ArtifactID 格式:产品线名-模块名
正例:tc-client / uic-api / tair-tool / bookstore
Version 版本号格式推荐:主版本号.次版本号.修订号
主版本号:当做了不兼容的 API 修改,或者增加了能改变产品方向的新功能。
次版本号:当做了向下兼容的功能性新增(新增类、接口等)。
修订号:修复 bug,没有修改方法签名的功能加强,保持 API 兼容性。
例如: 初始→1.0.0 修改bug → 1.0.1 功能调整 → 1.1.1等
Packaging **定义规则:**指示将项目打包为什么类型的文件,idea 根据 packaging 值,识别 maven 项目类型!
packaging 属性为 jar(默认值),代表普通的 Java 工程,打包以后是 .jar 结尾的文件。
packaging 属性为 war,代表 Java 的 web 工程,打包以后 .war 结尾的文件。
packaging 属性为 pom,代表不会打包,用来做继承的父工程。
Maven 工程项目结构说明
Maven 是一个强大的构建工具,它提供一种标准化的项目结构,可以帮助开发者更容易地管理项目的依赖、构
建、测试和发布等任务。
- pom.xml:Maven 项目管理文件,用于描述项目的依赖和构建配置等信息。
- src/main/java:存放项目的 Java 源代码。
- src/main/resources:存放项目的资源文件,如配置文件、静态资源等。
- src/main/webapp/WEB-INF:存放 Web 应用的配置文件。
- src/main/webapp/index.jsp:Web 应用的入口页面。
- src/test/java:存放项目的测试代码。
- src/test/resources:存放测试相关的资源文件,如测试配置文件等。
-
基于 IDEA 进行 Maven 工程构建
构建概念和构建过程
项目构建是指将源代码、依赖库和资源文件等转换成可执行或可部署的应用程序的过程,在这个过程中包括编译源
代码、链接依赖库、打包和部署等多个步骤。
项目构建是软件开发过程中至关重要的一部分,它能够大大提高软件开发效率,使得开发人员能够更加专注于应用
程序的开发和维护,而不必关心应用程序的构建细节。
同时,项目构建还能够将多个开发人员的代码汇合到一起,并能够自动化项目的构建和部署,大大降低了项目的出
错风险和提高开发效率。常见的构建工具包括 Maven、Gradle、Ant 等。
基于 IDEA 进行 Maven 依赖管理
依赖管理概念
Maven 依赖管理是 Maven 软件中最重要的功能之一。Maven 的依赖管理能够帮助开发人员自动解决软件包依赖
问题,使得开发人员能够轻松地将其他开发人员开发的模块或第三方框架集成到自己的应用程序或模块中,避免出
现版本冲突和依赖缺失等问题。
我们通过定义 POM 文件,Maven 能够自动解析项目的依赖关系,并通过 Maven 仓库自动下载和管理依赖,从而
避免了手动下载和管理依赖的繁琐工作和可能引发的版本冲突问题。
总之,Maven 的依赖管理是 Maven 软件的一个核心功能之一,使得软件包依赖的管理和使用更加智能和方便,简
化了开发过程中的工作,并提高了软件质量和可维护性。
Maven 工程依赖下载失败错误解决(重点)
在使用 Maven 构建项目时,可能会发生依赖项下载错误的情况,主要原因有以下几种:
1.下载依赖时出现网络故障或仓库服务器宕机等原因,导致无法连接至 Maven 仓库,从而无法下载依赖
2.依赖项的版本号或配置文件中的版本号错误,或者依赖项没有正确定义,导致 Maven 下载的依赖项与实际需要的不一致,从而引发错误
3.本地 Maven 仓库或缓存被污染或损坏,导致 Maven 无法正确地使用现有的依赖项
解决方案:
- 检查网络连接和 Maven 仓库服务器状态。
- 确保依赖项的版本号与项目对应的版本号匹配,并检查 POM 文件中的依赖项是否正确。
- 清除本地 Maven 仓库缓存(lastUpdated 文件),因为只要存在 lastUpdated 缓存文件,刷新也不会重新下载。本地仓库中,根据依赖的 gav 属性依次向下查找文件夹,最终删除内部的文件,刷新重新下载即可!