- Maven简介
Maven 是一款为 Java 项目构建管理、依赖管理的工具(软件),使用 Maven 可以自动化构建、测试、打包和发布项目,大大提高了开发效率和质量。 总结:Maven就是一个软件,掌握软件安装、配置、以及基本功能(项目构建、依赖管理)使用就是本课程的主要目标! |
1. 2 Maven主要作用
场景1:例如我们项目需要第三方库(依赖),如Druid连接池、MySQL数据库驱动和Jackson等。那么我们可以将需要的依赖项的信息编写到Maven工程的配置文件,Maven软件就会自动下载并复制这些依赖项到项目中,也会自动下载依赖需要的依赖!确保依赖版本正确无冲突和依赖完整! 场景2:项目开发完成后,想要将项目打成.war文件,并部署到服务器中运行,使用Maven软件,我们可以通过一行构建命令(mvn package)快速项目构建和打包!节省大量时间! |
依赖管理: Maven 可以管理项目的依赖,包括自动下载所需依赖库、自动下载依赖需要的依赖并且保证版本没有冲突、依赖版本管理等。通过 Maven,我们可以方便地维护项目所依赖的外部库,而我们仅仅需要编写配置即可。 构建管理: 项目构建是指将源代码、配置文件、资源文件等转化为能够运行或部署的应用程序或库的过程! Maven 可以管理项目的编译、测试、打包、部署等构建过程。通过实现标准的构建生命周期,Maven 可以确保每一个构建过程都遵循同样的规则和最佳实践。同时,Maven 的插件机制也使得开发者可以对构建过程进行扩展和定制。主动触发构建,只需要简单的命令操作即可。
总结: 1. 提供了一套标准的项目结构。 不同开发软件创建的项目结构不一样,Maven规范了项目的结构。 2. 提供了一套标准化的构建流程。 清理-->编译-->测试-->打包(jar/war)-->部署 3. 提供了一套依赖管理的机制。(管理项目所有的jar包) 1.传统项目下载jar包,体积大,传输慢 2. jar包和jar包之间版本冲突问题 |
- Maven安装、配置、Maven集成到IDEA中
2.1 maven安装
1.先maven官网下载maven.网址:Maven – Maven Releases History
2.解压到D:\盘根目录下 注意:不能放到中文目录
|
3. 配置maven的环境变量
前提条件:maven需要本机安装java环境、必需包含java_home环境变量!
3.1创建MAVEN_HOME的系统环境变量
变量名 | 值 |
MAVEN_HOME | Maven的解压路径 如:D:\apache-maven-3.6.3 |
3.2 编辑path环境变量,将MAVEN_HOME添加到path中.
4. 检查maven版本
打开cmd命令窗口,输入【mvn -v】,检查Maven是否安装正确。安装正确如下图:
2.2 修改Maven默认配置
在maven的解压目录下找到【conf文件夹下的setting.xml文件中】修改这个配置文件,可以对Maven进行配置(如修改仓库地址,设置代理等等);
1. 配置本地仓库地址 conf/settings.xml 55行
<localRepository>D:\repository</localRepository> |
2. 配置中央仓库的国内镜像(提高下载速度),放在<mirrors>标签中
<mirror> |
3. 配置jdk (jdk版本必须开发环境)
在profiles节点(标签)下添加jdk编译版本 268行附近
<profile> |
2.3 IDEA中修改Maven配置为自己安装的Maven
1. 打开IDEA,点击菜单栏中的【File】选择【Settings】进入IDEA配置,找到【Build,Execution,Deployment】菜单栏中的【Build Tools】中找到Maven。
2. 点击Maven,在右边配置自己安装的Maven路径。如下图:
3. 创建新项目也进行相同的配置maven
打开IDEA,点击菜单栏中的【File】选择【New Projects Settings】选择【Settings For New Projects】进入IDEA配置,找到【Build,Execution,Deployment】菜单栏中的【Build Tools】中找到Maven。
3.基于IDEA创建的Maven 项目
Maven工程相对之前的工程,多出一组gavp属性,gav需要我们在创建项目的时指定,p有默认值,后期通过配置文件修改。既然要填写的属性,我们先行了解下这组属性的含义!
Maven 中的 GAVP 是指 GroupId、ArtifactId、Version、Packaging 等四个属性的缩写,其中前三个是必要的,而 Packaging 属性为可选项。这四个属性主要为每个项目在maven仓库总做一个标识,类似人的《姓-名》。有了具体标识,方便maven软件对项目进行管理和互相引用!
GAV遵循一下规则:
GroupID 格式:com.{公司/BU }.业务线.[子业务线],最多 4 级。 如:com.taobao.tddl ArtifactID 格式:产品线名-模块名 如:正例:tc-client / uic-api / tair-tool / bookstore Version版本号格式:主版本号.次版本号.修订号 1.0.0 |
3.1 File--> New-->project-->New Project-->创建一个普通JavaSE的maven项目
注意:此处省略了version,直接给了一个默认值<version>1.0-SNAPSHOT</version>
3.2 File--> New-->project-->Maven Archetype-->选择maven模版-->选择webapp-->创建一个javaEE的web的maven项目
4.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:存放测试相关的资源文件,如测试配置文件等。 pom.xml:Maven 项目管理的配置文件,用于描述项目的依赖和构建配置等信息。 |
- pom.xml Maven 项目管理文件
<!-- 模型版本 --> <modelVersion>4.0.0</modelVersion> <!-- 项目的唯一ID,一个groupId下面可能多个项目,就是靠artifactId来区分的 --> <!-- 版本号 --> |
- 依赖管理引入第三方依赖的jar坐标
每一个jar包都有一个唯一的坐标,通过坐标找到对应的jar包。
坐标组成:
|
快速查找jar的坐标的网址:http://mvnrepository.com/
<!-- 引入jdbc.jar的依赖坐标 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.25</version> </dependency> |
Maven依赖管理
本地仓库:在计算机本地创建文件夹
中央仓库:线上网址。网址:https://repo1.maven.org/mav