Java Web —— 第四天(Maven)

Maven是什么

Maven 的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)

POM (ProjectObject Model): 项目对象模型

Maven的作用

项目构建:提供标准的、跨平台的自动化项目构建方式

依赖管理:方便快捷的管理项目依赖的资源 (ar包),避免资源间的版本冲突问题

统一开发结构:提供标准的、统一的项目结构

Maven下载

官网: http://maven.apache.org/

下载地址: http://maven.apache.org/download.cgi

Maven安装

Maven属于绿色版软件,解压即安装

Maven环境变量配置

依赖Java,需要配置JAVA_HOME

设置MAVEN自身的运行环境,需要配置MAVEN_HOME

测试环境配置结果

复制代码
MVN

Maven基础概念

仓库

用于存储资源,包含各种jar包

仓库:用于存储资源,包含各种iar包

仓库分类:

本地仓库:自己电脑上存储资源的仓库,连接远程仓库获取资源

远程仓库:非本机电脑上的仓库,为本地仓库提供资源

中央仓库:Maven团队维护,存储所有资源的仓库

私服:部门/公司范围内存储资源的仓库,从中央仓库获取资源

私服的作用:

保存具有版权的资源,包含购买或自主研发的iar

中央仓库中的iar都是开源的,不能存储具有版权的资源

一定范围内共享资源,仅对内部开放,不对外共享

配置Maven环境(当前工程)

选择IDEA中 File --> Settings --> Build,Execution,Deployment --> Build Tools --> Maven设置IDEA

使用本地安装的 Maven,并修改配置文件及本地仓库路径

配置Maven环境(全局)

IDEA 创建 Maven 项目

1.创建模块,选择Maven,点击Next

2.填写模块名称,坐标信息,点击finish,创建完成

3.编写 HelloWorld,并运行

坐标

什么是坐标?

Maven中的坐标用于描述仓库中资源的位置

https://repo1.maven.org/maven2

Maven坐标主要组成

groupld:定义当前Maven项目隶属组织名称(通常是域名反写,例如:orgmybatis)

artifactld:定义当前Maven项目名称(通常是模块名称,例如CRM、SMS)

version:定义当前项目版本号

找坐标

https://mvnrepository.com

Maven坐标的作用

使用唯一标识,唯一性定位资源位置,通过该标识可以将资源的识别与下载工作交由机器完成

坐标的组成:组织ID 项目ID 版本号

Maven启动后,会自动保存下载的资源到本地仓库

默认位置

XML 复制代码
<localRepository>${user.home)/.m2/repository</localRepository>

当前目录位置为登录用户名所在目录下的.m2文件夹中

自定义位置

XML 复制代码
<localRepository>D:\studyApp\Maven\maven-repository</localRepository>

IDEA 导入 Maven 项目

**方式一:**打开IDEA,选择右侧Maven面板,点击+号,选中对应项目的pom.xml文件,双击即可

如果没有看到

推荐将导入项目放同级目录

粘贴

**方式二:**打开IDEA,选择右侧Maven面板,点击+号,选中对应项目的pom.xml文件,双击即可

Maven项目构建命令

Maven构建命令使用mvn开头,后面添加功能参数,可以一次执行多个命令,使用空格分隔

mvn compile #编译

clean mvn #清理

test mvn #测试

mvn package #打包

mvn install #安装到本地仓库

依赖配置

依赖:指当前项目运行所需要的jar包,一个项目中可以引入多个依赖

配置:

1.在 pom.xml 中编写**<dependencies>** 标签

2.在**<dependencies>** 标签中 使用**<dependency>**引入坐标

3.定义坐标的groupld,artifactld,version

4.点击刷新按钮,引入最新加入的坐标

XML 复制代码
<dependencies>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>
    </dependencies>

注意事项

如果引入的依赖,在本地仓库不存在,将会连接远程仓库/中央仓库,然后下载依赖。(这个过程

比较耗时,耐心等待)

如果不知道依赖的坐标信息,可以到https://mvnrepository.com/中搜索

依赖传递

依赖具有传递性

直接依赖:在当前项目中通过依赖配置建立的依赖关系

间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源

排除依赖

排除依赖指主动断开依赖的资源,被排除的资源无需指定版本

依赖范围

依赖的jar包,默认情况下,可以在任何地方使用。可以通过 <scope>...</ scope > 设置其作用范围作用范围:

主程序范围有效。 (main文件夹范围内)

测试程序范围有效。 (test文件夹范围内)

是否参与打包运行。(package指令范围内)

示例:

仅在单元测试中有效

生命周期

Maven的生命周期就是为了对所有的maven项目构建过程进行抽象和统一

Maven中有3套相互独立的生命周期

clean:清理工作。

default: 核心工作,如: 编译、测试、打包、安装、部署等

site:生成报告、发布站点等。

每套生命周期包含一些阶段(phase),阶段是有顺序的,后面的阶段依赖于前面的阶段

注意事项

在同一套生命周期中,当运行后面的阶段时,前面的阶段都会运行

执行指定生命周期的两种方式

在idea中,右侧的maven工具栏,选中对应的生命周期,双击执行。

在命令行中,通过命令执行。

如果想跳过某一阶段 只执行后面的操作:

代表跳过测试阶段

相关推荐
4***g8941 分钟前
Java进阶-SpringCloud设计模式-工厂模式的设计与详解
java·spring cloud·设计模式
__万波__1 分钟前
二十三种设计模式(五)--建造者模式
java·设计模式·建造者模式
北郭guo2 分钟前
Java设计模式 【理论+代码实现】 让你从小白到大佬的蜕变
java·开发语言·设计模式
计算机徐师兄2 分钟前
Java基于微信小程序的贝壳活动助手【附源码、文档说明】
java·微信小程序·贝壳活动助手·贝壳活动助手小程序·贝壳活动助手微信小程序·java贝壳活动助手小程序·java贝壳活动助手微信小程序
Gavin在路上5 分钟前
架构设计之COLA架构
java·数据库·架构
MediaTea6 分钟前
Python 库手册:gc 垃圾回收
java·开发语言·jvm·python·算法
碎像6 分钟前
阿里云 ARMS 应用实时监控服务
java·阿里云·云计算
l***91477 分钟前
常见的 Spring 项目目录结构
java·后端·spring
j***12159 分钟前
java进阶1——JVM
java·开发语言·jvm
f***R81 小时前
HeidiSQL导入与导出数据
java