【真经秘籍】之Maven

198 阅读3分钟

在这里插入图片描述

  • 本文已参加「新人创作礼活动」,一起开启掘金之路。

一 初逢Maven

  • Maven是专门用于管理和构建Java项目的工具,
  • 它的主要功能有
    • 提供了一套标准化的项目结构
    • 提供了一套标准化的构建流程(编译,测试,打包,发布.....)
    • 提供了一套依赖管理机制 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

1.1 核心口诀

  • Maven提供了一套简单的命令来完成项目构建

在这里插入图片描述

1.2 登堂入室

  • 欲练神功,不必自宫

  • Maven是一个项目管理和构建工具,它基于项目对象模型,(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档标准化的构建流程 官网:maven.apache.org 在这里插入图片描述

1.2.1 打通任督二脉

仓库分类详解
本地仓库自己计算机上的一个目录
中央仓库由Maven团队维护的全球唯一的仓库地址:repo1.maven.org/maven2/
远程仓库(私服)一般由公司团队搭建的私有仓库

在这里插入图片描述

1.2.2 真气流转图

  • 依赖的JAR包的下载图解 在这里插入图片描述 在这里插入图片描述 当项目中使用坐标引入对应依赖jar包后,首先会查找本地仓库中是否有对应的iar包
  • 如果有,则在项目直接引用
  • 如果没有,则去中央仓库中下载对应的iar包到本地仓库

1.3 神级装备加持

1.3.1 Maven神器配置

  1. 解压apache-maven-3.6.3.rar既安装完成
    • 提示:推荐自己新建一个目录专门存放。如environment>maven-3.6.3
  2. 配置环境变量 在这里插入图片描述
  • 凌波微步招式图解 在这里插入图片描述
  1. 配置本地仓库:修改conf/settings.xml中的为一个指定目录
  • 记得提前把文件夹创建好,自定义 也可以
<localRepository>C:\environment\apache-maven-3.8.6\maven-repo</localRepository>

在这里插入图片描述

  1. 配置阿里云私服:修改conf/settings.xml中的标签,为其添加如下子标签:
<mirror>
      <id>nexus-aliyun</id>
      <mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf>
      <name>Nexus aliyun</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public</url>
     </mirror>

在这里插入图片描述

1.3.2 最终成果展示

在这里插入图片描述

1.4 Maven的基本招式

1.4.1 一图解千愁决【Maven 常用命令】

在这里插入图片描述

# 清理输出目录默认target/
mvn clean
mvn clean compile     清理编译
mvn test //运行应用程序中的单元测试
mvn clean test  清理测试
mvn clean package 清理打包
mvn clean install  清理将打包好的jar存入 本地仓库  注意是本地仓库
mvn clean deploy  根据pom中的配置信息将项目发布到远程仓库中

1.4.2 Maven 生命周期

  • Maven构建项目生命周期描述的是一次构建过程经历经历了多少个事件
  • Maven对项目构建的生命周期划分为3套
    • clean:清理工作
    • default:核心工作,例如编译,测试,打包,安装等
    • site:产生报告,发布站点等 在这里插入图片描述

1.5 基础功法:御剑飞行

在这里插入图片描述

控剑准备:IDEA配Maven

  1. 选择设置,【采用启动时全局设置】
  2. 搜索maven
  3. 设置idea使用本地maven,并修改配置文件 在这里插入图片描述

控剑口诀:Maven坐标详解

在这里插入图片描述

  • 什么是坐标?
    • Maven中的坐标是资源的唯一标识
    • 使用坐标来定义项目或引入项目中需要的依赖
  • Maven坐标主要组成
    • groupld:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.itheima)
    • artifactld:定义当前Maven项目名称(通常是模块名称,例如order-service、goods-service)
    • version:定义当前项目版本号
<groupId>com.yang</groupId>
    <artifactId>maven-demo</artifactId>
    <version>1.0-SNAPSHOT</version>
<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.29</version>
        </dependency>

御剑身法:IDEA创建Maven项目

在这里插入图片描述 在这里插入图片描述

御剑手法:IDEA导入Maven项目

在这里插入图片描述

速成之法:配置Maven-helper插件

在这里插入图片描述

记得重启

御剑实操:使用坐标导入jar包

  1. 在pom.xml中编写‘ < dependences >’标签
  2. 在‘ < dependences >’标签中使用‘ < depedency > ’引入坐标
  3. 定义坐标的groupId,artifactId,version
  4. 点击刷新按钮,使坐标生效
<dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.29</version>
        </dependency>
    </dependencies>

御剑外挂1:自动生效 ,不用刷新

在这里插入图片描述

御剑外挂2:鳞波微步,快速找包

Alt+insert……快速搜索,导包

大道之法:依赖管理

  • 通过设置坐标的依赖范围(scope),可以设置对应的jar包的作用范围:编译环境,测试环境,运行环境
依赖范围编译classpath测试classpath运行classpath栗子
compile (selected)YYYlogback
test-Y-junit
providedYY-servlet-api
runtime-YYjdbc驱动
systemYY-存储在本地的jar包
import引入DependecyManagement

在这里插入图片描述