Maven基础入门

文章目录

  • Maven简介
  • Maven 工作模式
    • 1.仓库
    • 2.坐标
  • Maven的基本使用
    • 1.常用命令
    • 2.生命周期
  • 依赖管理
    • 1.依赖配置
    • 2.依赖传递
    • 3.可选依赖
    • 4.排除依赖
    • 5.依赖范围
  • IDEA配置Maven

Maven简介

Apache Maven 是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档。

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

Maven是专门用于管理和构建Java项目的工具,它的主要功能有:

  • 提供了一套标准化的项目结构

  • 提供了一套标准化的构建流程(编译,测试,打包,发布……)

  • 提供了一套依赖管理机制

Maven构建的项目目录是统一的,如下图:

Maven基础入门_第1张图片

什么是依赖管理?
如果没有Maven的话,在项目中使用某些第三方资源时,就需要去下载对应的jar包

而Maven使用标准的 坐标 配置来管理各种依赖,只需要简单的配置就可以完成依赖管理

如Mysql驱动包:
Maven基础入门_第2张图片

Maven 工作模式

Maven基础入门_第3张图片

1.仓库

当我们写好坐标之后,Maven是怎么导入这些依赖jar包的呢?

其实依赖jar包是存储在我们的本地仓库中。而项目运行时从本地仓库中拿需要的依赖jar包。

当项目中使用坐标引入对应依赖jar包后,首先会查找本地仓库中是否有对应的jar包:

  • 如果有,则在项目直接引用;

  • 如果没有,则去中央仓库中下载对应的jar包到本地仓库。
    Maven基础入门_第4张图片

2.坐标

  • Maven 中的坐标是资源的唯一标识
  • 使用坐标来定义项目或引入项目中需要的依赖
  • 坐标查询网站:https://mvnrepository.com/

Maven 坐标主要组成

  • groupId:定义当前Maven项目隶属组织名称(通常是域名反写)
  • artifactId:定义当前Maven项目名称(通常是模块名称,例如 order-service、goods-service)
  • version:定义当前项目版本号

Maven基础入门_第5张图片

Maven的基本使用

1.常用命令

(1)compile :编译

  • 从中央仓库 / 阿里云下载编译需要的插件的jar包,在本地仓库也能看到下载好的插件
  • 在项目下会生成一个 target 目录

(2)clean:清理

  • 从阿里云下载清理需要的插件jar包
  • 删除项目下的 target 目录

(3)test:测试
该命令会执行所有的测试代码

(4)package:打包

  • 从阿里云下载打包需要的插件jar包
  • 在项目的 terget 目录下有一个jar包(将当前项目打成的jar包)

(5) install:安装
该命令会将当前项目打成jar包,并安装到本地仓库

2.生命周期

默认的生命周期:

Maven基础入门_第6张图片
注意:同一套生命周期内,执行后边的命令,前面的所有命令会自动执行

依赖管理

什么是依赖?
依赖指当前项目运行所需的jar,一个项目可以设置多个依赖

1.依赖配置


<dependencies>
    
    <dependency>
        
        <groupId>org.springframeworkgroupId>
        
        <artifactId>spring-webmvcartifactId>
        
        <version>5.2.10.RELEASEversion>
    dependency>
dependencies>

2.依赖传递

A依赖了B和C,B和C又分别依赖了其他jar包,所以在A项目中就可以使用上面所有jar包,这就是所说的依赖传递

直接依赖:
间接依赖:

Maven基础入门_第7张图片

3.可选依赖

可选依赖指对外隐藏当前所依赖的资源——不透明

<dependency>
    <groupId>com.itheimagroupId>
    <artifactId>maven_03_pojoartifactId>
    <version>1.0-SNAPSHOTversion>
    
    <optional>trueoptional>
dependency>

4.排除依赖

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

<dependency>
    <groupId>com.itheimagroupId>
    <artifactId>maven_04_daoartifactId>
    <version>1.0-SNAPSHOTversion>
    
    <exclusions>
        <exclusion>
            <groupId>com.itheimagroupId>
            <artifactId>maven_03_pojoartifactId>
        exclusion>
    exclusions>
dependency>

A依赖B,B依赖C,C通过依赖传递会被A使用到,现在要想办法让A不去依赖C

  • 可选依赖是在B上设置,A不知道有C的存在,
  • 排除依赖是在A上设置,A知道有C的存在,主动将其排除掉。

5.依赖范围

通过设置坐标的依赖范围(scope),可以设置 对应jar包的作用范围:编译环境、测试环境、运行环境

比如Junit scope设置为test,就只能作用在测试环境

Maven基础入门_第8张图片

IDEA配置Maven

你可能感兴趣的:(Java后端开发,maven,java,jar)