Maven

作用

依赖管理

统一项目结构

项目构建

概述

介绍

仓库

用于存储资源,管理各种jar包4

  • 本地仓库

    自己计算机上的一个目录

  • 中央仓库

    有Maven团队维护的全球唯一的。仓库地址:lCentral Repository:

  • 远程仓库(私服)

    一般有公司团队搭建的私有仓库

安装

步骤

1.下载解压apche-maven-3.6.1-bin.zip

链接:百度网盘 请输入提取码 提取码:j3oi

2.配置本地仓库:修改conf/settings.xml中的<localRepository>为一个指定目录

XML 复制代码
<localRepository>E:\develop\apache-maven-3.6.1\mvn_repo</localRepository>

3.配置阿里云私服:修改conf/settings.xml中的<mirrors>标签,为其添加如下子标签

XML 复制代码
<mirror>  
<id>alimaven</id>  
<name>aliyun maven</name>  
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>          
</mirror>

4.配置环境变量:MAVEN_HOME为maven的解压目录,并将其bin目录加入path环境变量

5.测试(是否安装成功)

java 复制代码
mvn -v

IDEA集成Maven

配置环境

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

  • 设置IDEA使用本地安装的Maven,并修改配置文件及本地仓库

1.根据自己安装的maven路径对应配置

2.给JRE配置JDK版本

3.编译版本

创建Maven项目

1.创建模块,选择New Project,填写模块名称,坐标信息,点击Create,创建完成

2.编写HelloWorld,并运行

Maven坐标

什么是坐标

  • Maven中的坐标是资源的唯一标识,通过该坐标可以唯一定位资源位置

  • 使用坐标来定义项目或引入项目中需要依赖

坐标主要组成

  • groupId:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.demo)

  • artifactId:定义当前Maven项目名称(通常是模块名称,例如order-service、goods-service)

  • version:定义当前项目版本号

依赖管理

  • 依赖

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

  • 配置

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

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

    3. 定义坐标的groupId,artifactId,version

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

依赖传递

  • 依赖具有传递性

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

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

  • 排除依赖

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

依赖范围

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

作用范围

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

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

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

XML 复制代码
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.10</version>
    <scope>test</ scope >
</dependency>
scope值 主程序 测试程序 打包(运行) 范例
compile(默认) Y Y Y log4j
test - Y - junit
provided Y Y - servlet-api
runtime - Y Y jdbc驱动

生命周期

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

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

  • clean:清理工作

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

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

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

相关推荐
前行的小黑炭9 分钟前
设计模式:为什么使用模板设计模式(不相同的步骤进行抽取,使用不同的子类实现)减少重复代码,让代码更好维护。
android·java·kotlin
Java技术小馆15 分钟前
如何设计一个本地缓存
java·面试·架构
XuanXu1 小时前
Java AQS原理以及应用
java
风象南4 小时前
SpringBoot中6种自定义starter开发方法
java·spring boot·后端
mghio13 小时前
Dubbo 中的集群容错
java·微服务·dubbo
咖啡教室18 小时前
java日常开发笔记和开发问题记录
java
咖啡教室18 小时前
java练习项目记录笔记
java
鱼樱前端18 小时前
maven的基础安装和使用--mac/window版本
java·后端
RainbowSea19 小时前
6. RabbitMQ 死信队列的详细操作编写
java·消息队列·rabbitmq