Maven初级(一)

news2024/11/24 0:39:54

目录

一. Maven概述

1.1 Maven是什么

1.2 Maven的作用

1.2.1 项目构建

1.2.2 依赖管理

1.2.3 统一项目结构

1.3 Maven模型

1.3.1 插件

1.3.2 项目对象模型

1.3.3 依赖管理模型

二. Maven基础概念

2.1 仓库:

2.2 仓库分类

2.2.2 远程仓库(私服)

中央仓库

2.3 Maven中的坐标

2.3.1 什么是坐标

2.3.2 Maven坐标的主要组成

2.3.3 Maven坐标的作用

2.4 生命周期

2.4.1 项目构建生命周期

2.4.2 注意

三.Maven的下载安装与配置

3.1 Maven下载

3.2 Maven安装

3.3 Maven环境变量配置

3.4 maven仓库配置

3.4.1 本地仓库配置(默认位置在c盘)

3.4.2 远程仓库配置(默认是国外的位置)

3.4.3 全局Setting和用户Setting的区别


一. Maven概述

1.1 Maven是什么

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

1.2 Maven的作用

1.2.1 项目构建

提供了一套标准化的构建流程(编译,测试,打包,发布……)。
解释说明:
如上图所示我们开发了一套系统,代码需要进行编译、测试、打包、发布,这些操作如果需要反复进行就显得特别麻烦,而 Maven提供了一套简单的命令来完成项目构建。

1.2.2 依赖管理

对项目所依赖的资源(jar包)进行管理,避免资源间的版本冲突问题。
解释说明:
Maven使用标准的 坐标 配置来管理各种依赖,只需要简单的配置就可以完成依赖管理。
如上图右边所示就是mysql驱动包的坐标,在项目中只需要写这段配置,其他都不需要我们担心,Maven都帮我们进行操作 了。

1.2.3 统一项目结构

提供标准的,统一的项目结构。
解释说明:
    项目结构我们都知道,每一个开发工具(IDE)都有自己不同的项目结构,它们互相之间不通用。我在eclipse中创建的目录,无法在idea中进行使用,这就造成了很大的不方便,如下图:前两个也是以后开发经常使用的开发工具 
    而Maven提供了一套标准化的项目结构,所有的IDE使用Maven构建的项目完全一样,所以IDE创建的Maven项目可以通用。 如下图右边就是Maven构建的项目结构。

1.3 Maven模型

1.3.1 插件

    如上图所示就是Maven的模型,而我们先看紫色框框起来的部分,他就是用来完成标准化构建流程 。如我们需要编译, Maven提供了一个编译插件供我们使用,我们需要打包,Maven就提供了一个打包插件提供我们使用等 。

1.3.2 项目对象模型

    上图中紫色框起来的部分,项目对象模型就是将我们自己抽象成一个对象模型,有自己专属的坐标,如下图所示是一个 Maven项目:

1.3.3 依赖管理模型

    依赖管理模型则是使用坐标来描述当前项目依赖哪些第三方jar包,如下图所示 :
上述Maven模型图中还有一部分是仓库。如何理解仓库呢?见 二.Maven基础概念

二. Maven基础概念

2.1 仓库:

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

2.2 仓库分类

Maven中的仓库分为本地仓库、远程仓库、中央仓库
2.2.1 本地仓库
自己电脑上存储资源的仓库,连接远程仓库获取资源。

2.2.2 远程仓库(私服)

一般由公司团队搭建的私有仓库 。
私服的作用:
1.因为 中央仓库中的jar都是开源的,不能存取具有版权的资源。所以私服能够 保存具有版权的资源,包含购买或自主研发的jar包。
2.一定范围内共享资源,仅对内部开放不对外共享。
Note:远程仓库一般指的就是中央仓库或者阿里云等镜像仓库,私服的存在是为了让多个程序员共享一个仓库里的资源。

中央仓库

Maven团队维护,存储所有资源的仓库。

2.3 Maven中的坐标

2.3.1 什么是坐标

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

2.3.2 Maven坐标的主要组成

groupId:当前Maven项目隶属的组织名称。
artifactId:定义当前Maven项目名称。
version:定义当前项目版本号。
packaging:定义该项目的打包方式。

2.3.3 Maven坐标的作用

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

2.4 生命周期

2.4.1 项目构建生命周期

Maven构建生命周期描述的是一次构建过程经历了多少个事件。
Maven对项目构建的生命周期划分为3套:
1. clear:清理工作
2. default:核心工作,例如编译,测试,打包,部署等
3. site:产生报告,发布站点等。 这套生命周期一般不会使用。

2.4.2 注意

同一套生命周期内,执行后边的命令,前面的所有命令会自动执行。 

三.Maven的下载安装与配置

3.1 Maven下载

从官网http:// maven.apache.org 下载。

3.2 Maven安装

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

3.3 Maven环境变量配置

 1.依赖JAVA,需要配置JAVA_HOME,然后在path路径下配置%JAVA_HOME%\bin。
 2.设置Maven自身的运行环境需要配置MAVEN_HOME,然后在path路径下配置%MAVEN_HOME%\bin。
 3.在dos里输入mvn -version,测试环境配置结果。

3.4 maven仓库配置

3.4.1 本地仓库配置(默认位置在c盘)

在Maven/conf文件夹下的setting.xml文件中通过书写
<localRepository>E:\maven\repository</localRepository>配置本地仓库。

3.4.2 远程仓库配置(默认是国外的位置)

在Maven/conf文件夹下的setting.xml文件中 配置阿里云镜像仓库
  </mirrors>
      <mirror>
       <!--此镜像的唯一标识符,用来区分不同的mirror元素 -->
       <id>nexus-aliyun</id>
       <!--对哪种仓库进行镜像,简单说就是替代哪个仓库-->
       <mirrorOf>central</mirrorOf>
       <!--镜像名称-->
       <name>Nexus aliyun</name>
       <!--镜像URL -->
       <url> http://maven.aliyun.com/nexus/content/groups/public </url>
    </mirror>
  </mirrors>

3.4.3 全局Setting和用户Setting的区别

全局Setting定义了当前计算机中Maven的公共配置,用户Setting定义了当前用户的配置。

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

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

相关文章

Python继承的优缺点

推出继承的初衷是让新手顺利使用只有专家才能设计出来的框架&#xff01;子类化内置类型的问题在Python2.2之前&#xff0c;内置类型不能子类化&#xff0c;如list、dict等。在Python2.2之后&#xff0c;内置类型可以子类化了&#xff0c;但是要注意的是&#xff1a;内置类型&a…

Individual tree segmentation and tree-counting using supervised clustering

ABSTRACT 个体树木分割 (ITS) 或树木计数是精准林业和农业过程中的一项基础工作。与费时费力的人工检查不同&#xff0c;计算机视觉在基于无人机 (UAV) 的应用中显示出巨大的前景&#xff1b;此类应用之一包括森林资源清单中的自动树木计数问题。然而&#xff0c;由于树冠冠层…

深度学习性能评估指标介绍

首先是相关数据描述。假设原始样本中有两类数据&#xff0c;其中&#xff1a;总共有P个类别为1的样本&#xff0c;假设类别1为正例总共有N个类别为0的样本&#xff0c;假设类别0为负例经过分类后&#xff1a;有TP个类别为1的样本被系统正确判定为类别1&#xff0c;FN个类别为1的…

【哈希表】leetcode1. 两数之和(C/C++/Java/Python/Js)

leetcode1. 两数之和1 题目2 思路3 代码3.1 C版本3.2 C版本3.3 Java版本3.4 Python版本3.5 JavaScript版本4 总结1 题目 题源链接 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数…

iPad 屏幕镜像到 macbook

将iPad 到屏幕投屏到 macbook&#xff0c;只需要三步就可以实现用数据线连接ipad和macbook在macbook的应用中找到QuickTime Player&#xff0c;打开QuickTime Player&#xff0c;在【文件】中选择【新建影片】在弹出窗口的小箭头中&#xff0c;选择需要的iPad名称通过数据线连接…

目标跟踪心得篇七:解决目标跟踪评价指标输出为0或异常(Trackeval、MMtracking)

如果在做跟踪任务测评时,发现输出的评价指标全为0或者异常值时该怎么办(如下图)?博主调试了很久发现其实这是MMtracking的一个Bug,因此如果不是用MMtracking框架的话本节可能对你帮助不大。 大致有以下两个内容: TrackEval目前还不能做到对多类别的MOT任务计算评价指标,…

FDD与TDD

TDD&#xff0c;时分双工(Time Division Duplexing) FDD&#xff0c;频分双工(Frequency Division Duplexing) 帮助理解&#xff1a; 1.FDD&#xff1a;双车道&#xff0c;一个车道只能走一个方向&#xff0c;双向互不干扰。 2.TDD&#xff1a;单车道&#xff0c;不同时间允…

RabbitMQ看这一篇文章就够了

第一章 RabbitMQ介绍 第1节 MQ是什么 1 2 3 41. 消息队列(Message Queue),又叫做消息中间件 2. 用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成 3. 通过提供消息传递和消息队列模型,可以在分布式环境下扩展进程的通信 4. MQ 是用来解…

北斗短报文遥测终端机在水雨情监测系统中的应用

一、方案概述 我国水利监管手段比较单一&#xff0c;水雨情监测移动公网覆盖不足等诸多问题&#xff0c;利用北斗短报文通信技术数字化信息采集技术&#xff0c;实现水文自动测报&#xff0c;大幅度提升湿地生态和水域的监测、查询、预警和应急处理能力。在恶劣天气情况或特殊灾…

360(drizzleDumper)脱壳教程“某药数据”

一、drizzleDumper的下载使用 1.上GitHub下载开源的脱壳工具mirrors / DrizzleRisk / drizzleDumper GitCodedrizzleDumper是一款基于内存搜索的Android脱壳工具。 &#x1f680; Github 镜像仓库 &#x1f680; 源项目地址 ⬇ ⬇...https://gitcode.net/mirrors/DrizzleRisk…

ZedGraph如何显示鼠标附近的曲线的点?介绍三种方法

使用ZedGraph绘制曲线图的时候&#xff0c;不仅仅是看曲线的走向&#xff0c;也需要查看曲线上某位位置处采集到的数据是多少。下面介绍三种方法&#xff0c;从简单到复杂。 文章目录1、使用自带的功能显示点的坐标2、 多条曲线的坐标点同时显示3、 多条曲线的坐标点同时显示&a…

100%国产C2000,P2P替代TMS320F280049C,独立32位双核CPU,主频高达400MHz

一、特性参数 1、独立双核&#xff0c;32位CPU&#xff0c;单核主频400MHz 2、IEEE 754 单精度浮点单元 &#xff08;FPU&#xff09; 3、三角函数单元 &#xff08;TMU&#xff09; 4、1MB 的 FLASH &#xff08;ECC保护&#xff09; 5、1MB 的 SRAM &#xff08;ECC保护&…

docker基础简介

一、docker架构 二、Docker 基本命令 1、查看 Docker 版本 查看 Docker 版本包括 Docker 版本号、API 版本号、对应的 Git Commit、Containerd 和 runC的版本信息等。 # docker version Client: Docker Engine - Community Version: 20.10.4 API version: 1.40 Go version: …

新手小白做跨境电商应该从哪里入手?

想从事跨境电商先从哪里入手?米贸搜整理如下&#xff0c;希望可以帮助到你跨境电商平台&#xff0c;如&#xff1a;Amazon、eBay、aliexpress、Cdiscount、wish等。想从事跨境电商&#xff0c;你得搭建电商团队&#xff0c;先从跨境电商平台的入驻入手&#xff0c;弄清楚入驻条…

【设计模式】行为型模式·模板方法模式

学习汇总入口【23种设计模式】学习汇总(数万字讲解体系思维导图) 一.概述 定义一个操作中的算法骨架&#xff0c;而将算法的一些步骤延迟到子类中&#xff0c;使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。 在面向对象程序设计过程中&#xff0c;程序员常…

HTB_Inclued_TFTP文件包含与LXD提权

文章目录信息收集TFTPLXD 提权环境安装报错信息收集 开放80端口&#xff0c;url为http://ip:port?filehome.php 测试文件包含&#xff0c;本地包含成功&#xff0c;远程失败&#xff0c;尝试上传后门木马反弹shell 根据图示&#xff0c;网站目录为var/www&#xff0c;其他功…

minio 使用docker安装和入门案例demo

minio目录1.安装2.页面web访问3.在界面上传4.使用api上传5.使用api下载目录 公司目前用到文件上传&#xff0c;考虑到费用等情况&#xff0c;可以在公司自己的服务器上搭建一下。本人记录minio的使用情况。 “前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&…

搭建 SpringBoot 项目

创建 SpringBoot 项目 配置application.properties 根据自己数据库进行配置 spring.datasource.nameexamspring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver spring.datasource.usernameroot spring.datasource.passwordroot spring.datasource.urljdbc:mysql://1…

振弦采集模块VMTool配置工具 快速测试功能

振弦采集模块VMTool配置工具 快速测试功能 本章演示在计算机上通过 VMTool 工具读取振弦传感器数据。 假设您的计算机已经有至少一个空闲的 COM 接口。 1 检查 COM 接口名称 在操作系统桌面右键点击“ 我的电脑” &#xff0c; 选择【 属性】&#xff0c;弹出计算机属性对话框&…

X-Bogus流程分析

声明&#xff1a;本文仅限学习交流使用&#xff0c;禁止用于非法用途、商业活动等。否则后果自负。如有侵权&#xff0c;请告知删除&#xff0c;谢谢&#xff01;本教程也没有专门针对某个网站而编写&#xff0c;单纯的技术研究 目录 一、混淆还原 二、插桩还原 三、还原X-B…