Maven-基础

news2024/11/17 8:55:07

Maven

在这里插入图片描述

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

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

    Maven提供了一套标准化的项目结构,所有的IDE使用Maven构建的项目完全一样

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

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

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

    依赖管理其实就是管理你项目所依赖的第三方资源(jar包、插件)。

1. Maven简介

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

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

1.1 Maven模型

  • 项目对象模型 (Project Object Model)
  • 依赖管理模型(Dependency)
  • 插件(Plugin)

1.2 仓库

依赖jar包存储的地方

仓库分类:

  • 本地仓库:自己计算机上的一个目录

  • 中央仓库:由Maven团队维护的全球唯一的仓库

    • 地址: https://repo1.maven.org/maven2/
  • 远程仓库(私服):一般由公司团队搭建的私有仓库

jar包获取流程

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

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

  • 如果没有,则去中央仓库中下载对应的jar包到本地仓库。
    在这里插入图片描述

如果还可以搭建远程仓库,将来jar包的查找顺序则变为:

本地仓库 --> 远程仓库–> 中央仓库

在这里插入图片描述

2. Maven下载和安装配置

2.1 下载

  • 下载官网→_→传送门
    image-20210326171236983将下载好的压缩包,解压至你想要安装的目录下。

    解压缩后的目录结构如下:
    在这里插入图片描述

    • bin目录 : 存放的是可执行命令。
    • conf目录 :存放Maven的配置文件。settings.xml 配置文件后期需要修改。
    • lib目录 :存放Maven依赖的jar包。Maven也是使用java开发的,所以它也依赖其他的jar包。

2.2 配置环境变量

配置环境变量 MAVEN_HOME 为安装路径的bin目录

  1. 此电脑 右键 --> 高级系统设置 --> 高级 --> 环境变量

  2. 系统变量处新建一个变量 MAVEN_HOME
    在这里插入图片描述

  3. Path 中进行配置
    在这里插入图片描述

  4. 打开命令提示符进行验证,出现如图所示表示安装成功
    在这里插入图片描述

2.3 配置本地仓库

修改 conf/settings.xml 中的 <localRepository> 为一个指定目录作为本地仓库,用来存储jar包。

在这里插入图片描述

2.4 配置阿里云私服

  • 中央仓库在国外,所以下载jar包速度可能比较慢,而阿里公司提供了一个远程仓库,里面基本也都有开源项目的jar包。

    修改 conf/settings.xml 中的 <mirrors>标签,为其添加如下子标签:

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

3. Maven基本使用

3.1 Maven 常用命令

  1. compile :编译

    mvn compile
    
    • 从仓库下载编译需要的插件的jar包
    • 在项目下会生成一个 target 目录
  2. clean:清理

    mvn clean
    
    • 从仓库下载清理需要的插件jar包
    • 删除项目下的 target 目录
  3. test:测试

    mvn test 
    

    该命令会执行所有的测试代码

  4. package:打包

    mvn package
    
    • 从仓库下载打包需要的插件jar包
    • 在项目的 terget 目录下有一个jar包(将当前项目打成的jar包)
  5. install:安装

    mvn install
    

    该命令会将当前项目打成jar包,并安装到本地仓库。

3.2 Maven 生命周期

Maven 构建项目生命周期描述的是一次构建过程经历经历了多少个事件

  1. Maven 对项目构建的生命周期划分为3套:

    • clean :清理工作。

    • default :核心工作,例如编译,测试,打包,安装等。

    • site : 产生报告,发布站点等。这套声明周期一般不会使用。

  2. 同一套生命周期内,执行后边的命令,前面的所有命令会自动执行。例如默认(default)生命周期如下:
    在这里插入图片描述

    例如:

    当我们执行 install(安装)命令时,它会先执行 compile命令,再执行 test 命令,再执行 package 命令,最后执行 install 命令。

    当我们执行 package (打包)命令时,它会先执行 compile 命令,再执行 test 命令,最后执行 package 命令。

  3. 默认的生命周期也有对应的很多命令,其他的一般都不会使用,我们只关注常用的:
    在这里插入图片描述

4. IDEA使用Maven

4.1 IDEA配置Maven环境

我们需要先在IDEA中配置Maven环境:

  1. 选择 IDEA中 File --> Settings

在这里插入图片描述

  1. 搜索 maven
    在这里插入图片描述

  2. 设置 IDEA 使用本地安装的 Maven,并修改配置文件路径
    在这里插入图片描述

4.2 Maven 坐标详解

什么是坐标?

  • Maven 中的坐标是资源的唯一标识
  • 使用坐标来定义项目或引入项目中需要的依赖

Maven 坐标主要组成

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

如下就是使用坐标表示一个项目:

<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.9</version>

注意:

  • 上面所说的资源可以是插件、依赖、当前项目。
  • 我们的项目如果被其他的项目依赖时,也是需要坐标来引入的。

4.3 IDEA 创建 Maven项目

  • 创建模块,选择Maven,点击Next

    在这里插入图片描述

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

    在这里插入图片描述

    创建好的项目目录结构如下:

    在这里插入图片描述

4.4 IDEA 导入 Maven项目

  • 选择右侧Maven面板,点击 + 号

    在这里插入图片描述

  • 选中对应项目的pom.xml文件,双击即可

    在这里插入图片描述

  • 如果没有Maven面板,选择

    View --> Appearance --> Tool Window Bars

    在这里插入图片描述

可以通过下图所示进行命令的操作:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/636726.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

jmeter性能测试进阶使用纪要

目录 目录 随机变量&#xff1a;实现注册手机号不重复分配 正则表达式&#xff1a;token等变量提取 HTTP header manager&#xff1a;token传参Authorization使用 后置BeanShell PostProcessor设置prev.setDataEncoding(“utf-8”)&#xff1a;响应中文乱码处理 同步定时…

与AI合作穿越剧 编剧徐婷:AI脑洞大,但无法替代人类的情感表达

热门喜剧秀《周六夜现场》本季提前结束&#xff0c;美剧《亿万》最新第七季的更新搁浅&#xff0c;漫威新电影《新刀锋战士》暂停拍摄……美国影视娱乐行业的编剧们以抵制AI为由的大罢工&#xff0c;开始影响诸多作品的产出&#xff0c;据说造成了100亿美元的损失。 这场罢工已…

深入理解Linux虚拟内存管理(八)

系列文章目录 Linux 内核设计与实现 深入理解 Linux 内核&#xff08;一&#xff09; 深入理解 Linux 内核&#xff08;二&#xff09; Linux 设备驱动程序&#xff08;一&#xff09; Linux 设备驱动程序&#xff08;二&#xff09; Linux 设备驱动程序&#xff08;三&#xf…

Hive企业级调优

Hive企业级调优 调优原则已经在MR优化阶段已经有核心描述,优化Hive可以按照MR的优化思路来执行 优化的主要考虑方面: 环境方面&#xff1a;服务器的配置、容器的配置、环境搭建具体软件配置参数&#xff1a;代码级别的优化 调优的主要原则: ​ 20/80原则非常重要,简单的说80…

骨传导蓝牙耳机排行榜10强,介绍几款不错的户外骨传导耳机

随着骨传导技术的不断发展&#xff0c;骨传导耳机的性能也得到了很大的提升&#xff0c;特别是在音质和佩戴舒适性上&#xff0c;都有了很大的提升。很多人在听音乐的时候&#xff0c;都会佩戴骨传导耳机&#xff0c;因为骨传导耳机具有开放双耳的特点&#xff0c;长时间佩戴也…

Android Jetpack Compose 中的Tabs(TabLayout)

Android Jetpack Compose 中的Tabs&#xff08;TabLayout&#xff09; 添加依赖 我们需要依赖于2个 accompanist组件&#xff0c;你可以从下面链接中获取最新版本https://github.com/google/accompanist/tree/main/pager#pager-composable-for-jetpack-compose def accompan…

探索LowLatency的HLS低延迟直播协议

HLS全称为HTTP Live Streaming&#xff0c;其中m3u8作为描述协议&#xff0c;指向一系列切片文件。支持多码流与自适应码率&#xff0c;支持广告无缝播放&#xff0c;支持CMAF协议的低延时直播&#xff0c;也支持CDN动态选择。 我们先看下HLS整体架构&#xff0c;由三部分构成…

莫顿曲线映射 一维到二维的变换 MD(莫顿)码 反向变换 线性四叉树

函数声明&#xff1a; #include <stdio.h> #include <math.h>#define MAXSIZE 200 #define N 8typedef struct //栈的存储结构 {int data[MAXSIZE];int MD[MAXSIZE];int top; }stack1;void stackinitiate(stack1 *s); //初始化栈 void push (s…

【已解决】c++ 读入灰度图进行dft变换报错

报错原因&#xff1a; 1、imread函数读入默认参数为1&#xff0c;即彩色三通道图像&#xff0c;而我们要指定参数为0&#xff0c;读入灰度图像 2、在进行傅里叶变换前要将图像数据类型转为CV_32F&#xff0c;因为默认灰度图像类型为CV_8U 正确代码&#xff1a; #include <…

Vue中如何进行滚动加载与无限滚动?

Vue中如何进行滚动加载与无限滚动&#xff1f; 随着Web应用程序的复杂性和数据量的增加&#xff0c;滚动加载和无限滚动成为了Web开发中常见的需求。在Vue中&#xff0c;我们可以使用一些插件和技术来实现这些功能。 本文将介绍Vue中如何进行滚动加载和无限滚动&#xff0c;包…

内核实现信号捕捉的过程,以及要用到的函数sigaction

1.信号捕捉过程 1.在执行主控制流程的某条指令时因为中断、异常或系统调用进入内核。 2.内核处理完异常准备回用户模式之前先处理当前进程中可以递送的信号。 3.do_signal(); 如果信号的处理动作为自定义的信号处理函数&#xff0c;则回到用户模式执行信号处理函数&#xff08…

prometheus监控应用数据(一)

prometheus监控应用数据(一) 以下代码实现均使用go语言,至于其他语言请参照其他语言的prometheus api文档 获取go package: prometheus: go get -u github.com/prometheus/client_golang/prometheus搭建程序基本骨架 IP地址暂定为: localhost启用prometheus的监控端口是2112以…

互联网大厂Java面试题1500+附答案详解(2023版)

很多 Java 工程师的技术不错&#xff0c;但是一面试就头疼&#xff0c;10 次面试 9 次都是被刷&#xff0c;过的那次还是去了家不知名的小公司。 问题就在于&#xff1a;面试有技巧&#xff0c;而你不会把自己的能力表达给面试官。 应届生&#xff1a;你该如何准备简历&#…

2020310

Selenium: 基于WebDriver协议的 Web应用程序测试的工具 精简版&#xff1a; selenium脚本通过http请求发送命令和参数给httpserver httpserver通过json wire protocol格式转发命令和参数给webdriver webdriver通过原生API或者JavaScript代码执行操作给浏览器 浏览器通过json wi…

材料微观结构表征技术:电子背散射衍射EBSD

材料微观结构表征技术&#xff1a;电子背散射衍射EBSD 电子背散射衍射&#xff08;EBSD&#xff09;是一种材料表征技术&#xff0c;通过使用电子束对材料进行照射&#xff0c;并测量背向散射的电子的衍射模式&#xff0c;可以提供关于材料微观结构的详细信息。这项技术结合了…

DAY 75 【分布式应用】消息队列之卡夫卡 + EFLFK集群部署

pache公司的软件包官方下载地址&#xff1a;archive.apache.org/dist/ 注&#xff1a;kafka从3.0版本之后&#xff0c;不再依赖zookeeper Zookeeper 概述 官方下载地址&#xff1a;https://archive.apache.org/dist/zookeeper/ Zookeeper 定义 Zookeeper是一个开源的分布式…

【Linux脚本篇】循环语句-for

目录 &#x1f341;for的语法格式 &#x1f341;for循环案例 &#x1f343;案例一&#xff1a;循环创建文件 &#x1f343;案例二&#xff1a;应用引号或转义符 &#x1f343;案例三&#xff1a;从变量中取值 &#x1f343;案例四&#xff1a;从命令中取值 &#x1f343;案例五…

Vulkan入门精要

Vulkan入门精要 (fuxiii.github.io)https://fuxiii.github.io/Essentials.of.Vulkan/

开始在适用于 Linux 的 Windows 子系统上使用 Git

目录 Git 可以安装在 Windows 和 WSL 上安装 GitGit 配置文件设置Git 凭据管理器设置使用 SSH 的 GitAzure 的其他配置添加 Git Ignore 文件Git 和 VS CodeGit 行尾其他资源 Git 是最常用的版本控制系统。 使用 Git&#xff0c;可以跟踪对文件所做的更改&#xff0c;以便记录已…

java使用aspose.pdf或者spire.pdf 将pdf文件转word,实测

1. aspose.pdf aspose.pdf不是破解版的只能转3页&#xff0c;所以我弄了个破解版&#xff0c; aspose.pdf破解版在网上都有破解方法也比较简单&#xff0c;这里就不说了&#xff0c;直接引入破解版的jar包&#xff0c;在这里我用的是aspose-pdf-21.11.jar版本&#xff0c;代码…