Maven 快速入门

Maven

简介

  • Maven是apache旗下的一个开源项目,是一款用于管理和构建java项目的工具。

依赖管理

  • 方便快捷的管理项目的依赖资源(jar包),避免版本冲突

配置

  • 依赖: 指当前项目运行所需要的(jar包)

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

    • 在<dependencies> 标签 使用<dependency>引入坐标

    • GroupId(组ID)

    • ArtifactId(工件ID)

    • Version(版本号)

<!-- 这是Maven项目中的dependencies标签,用于定义项目的所有依赖关系 -->
<dependencies><!-- 下面定义了一个具体的依赖项 --><dependency><!-- groupId定义了依赖的组织或团体,这里是阿里巴巴集团 --><groupId>com.alibaba</groupId><!-- artifactId定义了具体的构件或库名,这里是Druid针对Spring Boot的启动器 --><artifactId>druid-spring-boot-starter</artifactId><!-- version指定了该依赖的版本号,使用的是1.2.4 --><version>1.2.4</version></dependency><!-- dependencies标签结束,所有项目的依赖关系定义完毕 -->
</dependencies>

统一项目结构

  • 提供标准统一的项目结构

项目构建

  • 标准跨平台(Linux, Windows, MacOS)的自动化项目构建方式

  • 清理 编译 测试 打包 发布

####

向已有项目添加maven模块

文件 -> 新建 -> 新模块

新建maven项目

导入maven项目

方式1

方式2

安装

  1. 官网下载--安装

  2. 配置本地仓库 :修改 conf/settings.xml 配置文件 中的 <localRepository>

    <localRepository>"本地仓库位置"</localRepository>
    <!-- 大概在55 行左右-->

  3. 建议配置 阿里云私服 :修改conf/setting.xml文件 中的<mirrors>

    <mirrors><!--在这个标签中添加一下代码 --><!-- 阿里云仓库 --><mirror><id>alimaven</id><mirrorOf>central</mirrorOf><name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/repositories/central/</url></mirror>
    ​</mirrors>

Maven坐标

Maven坐标系统是Apache Maven构建工具用于唯一标识项目及其依赖的重要概念。这一系统确保了项目构建过程中的依赖解析、项目部署等操作能够准确无误地进行。

坐标组成

  • GroupId(组ID):这是项目组织的唯一标识符,通常采用倒置的域名表示,如com.example。它定义了项目的归属,有助于区分不同组织或个人的项目。

  • ArtifactId(工件ID):代表实际项目或依赖库的名称,是Maven项目的基本命名。例如,一个项目名为my-project,则其artifactId即为my-project

  • Version(版本号):指定项目的特定版本,如1.0.0。版本号对于管理项目依赖的升级、兼容性检查至关重要。

作用

  • 唯一标识:Maven坐标为每个项目或依赖库提供了一个全球唯一的地址,确保了在大型项目或依赖网络中能够精确地定位资源。

  • 依赖管理:基于坐标,Maven能自动下载和管理项目所需的全部依赖,简化了构建过程。

  • 仓库定位:坐标也是Maven在本地仓库、远程仓库中查找和存储项目构件或依赖的标准路径。

实例

<!-- 这是Maven项目中的dependencies标签,用于定义项目的所有依赖关系 -->
<dependencies><!-- 下面定义了一个具体的依赖项 --><dependency><!-- groupId定义了依赖的组织或团体,这里是阿里巴巴集团 --><groupId>com.alibaba</groupId><!-- artifactId定义了具体的构件或库名,这里是Druid针对Spring Boot的启动器 --><artifactId>druid-spring-boot-starter</artifactId><!-- version指定了该依赖的版本号,使用的是1.2.4 --><version>1.2.4</version></dependency><!-- dependencies标签结束,所有项目的依赖关系定义完毕 -->
</dependencies>

依赖传递

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

  • 间接依赖: 直接依赖的资源,也依赖了其他资源,那么当前项目也间接的依赖了这个资源

排除依赖

  • 主动断开某间接依赖,被断开的资源无须指定版本

    <!-- 在Maven的依赖声明中,这是一个特定的依赖项配置 -->
    <dependency><!-- groupId: 定义了依赖的组织或公司名称,xx_0 是一个占位符,实际使用时应替换为具体的组织ID --><groupId>xx_0</groupId><!-- artifactId: 指定了依赖库或模块的名称,xx_1 同样是占位符,应替换为实际的库名 --><artifactId>xx_1</artifactId><!-- version: 表明该依赖的具体版本号,xx_2 需要替换为实际版本字符串 --><version>xx_2</version>
    ​<!-- exclusions 标签用于排除传递性依赖,即不希望引入某些由当前依赖自动带来的其他依赖 --><exclusions><!-- 在此标签内,可以定义一个或多个exclusion子标签来排除特定的依赖 --><exclusion><!-- 被排除依赖的groupId --><groupId>xx</groupId><!-- 被排除依赖的artifactId --><artifactId>xx</artifactId></exclusion><!-- 如果有其他依赖需要排除,可以继续添加exclusion标签 --></exclusions>
    </dependency>

依赖范围

  • 靠<scope>标签来指定范围

范围(Scope)主程序(Main)测试程序(Test)打包(Package)范例
compile(编译范围 默认)log4j
test(测试范围)junit
provided(已提供范围)servlet-api
runtime(运行时范围)jdbc驱动
<!-- 这是Maven项目中的dependencies标签,用于定义项目的所有依赖关系 -->
<dependencies><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.4</version><scope>test</scope> <!-- 设置了依赖的范围为test范围 --> </dependency>
​
</dependencies>
 

三套独立生命周期

当执行某个阶段时会执行所有在它前面的阶段

clean: 清理工作

clean生命周期负责清理项目,即删除之前构建生成的文件。它确保下一次构建从干净的状态开始。clean生命周期包含以下阶段:

  • pre-clean: 执行一些清理前的准备工作。

  • clean: 清理上一次构建生成的文件。 ------常用

  • post-clean: 执行一些清理后的收尾工作。

default: 核心工作

default生命周期是Maven的核心生命周期,负责项目的编译、测试、打包等。这是实际构建项目的生命周期,包含了许多阶段,例如:

  • validate: 验证项目是否正确,所有必要的信息都是可用的。

  • compile: 编译项目的源代码。 ------常用

  • test: 使用适当的单元测试框架运行测试,这些测试不应要求代码被打包或部署。------常用

  • package: 打包编译后的代码,在打包之前,通常会进行一些预处理操作,如编译和测试。------常用

  • verify: 对集成测试的结果进行检查,以确保质量达标。

  • install: 将包安装到本地仓库,以供其他项目使用。------常用

  • deploy: 在构建环境中完成,将最终的包复制到远程仓库以共享给其他开发者和项目。

site: 生成报告

site生命周期负责生成项目的站点文档,包括项目信息、报告和维基页面等。site生命周期包含以下阶段:

  • pre-site: 在生成项目站点之前执行一些准备工作。

  • site: 生成项目的站点文档。

  • post-site: 执行一些生成站点后的收尾工作。

  • site-deploy: 将生成的站点发布到服务器上。

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

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

相关文章

线程池监控是怎么做的?

引言&#xff1a;在现代软件开发中&#xff0c;线程池是一种重要的并发控制机制&#xff0c;它能有效管理和复用线程资源&#xff0c;提升系统的性能和响应速度。然而&#xff0c;随着应用规模的扩大和复杂性的增加&#xff0c;对线程池进行有效监控显得尤为重要。线程池监控不…

bellman-ford——AcWing 853. 有边数限制的最短路99

bellman-ford 定义 贝尔曼-福特&#xff08;Bellman-Ford&#xff09;算法是一种用于在加权有向图中计算单源最短路径的算法。 运用情况 可以处理存在负权边的图。常用于找出图中从一个特定顶点到其他所有顶点的最短路径。 注意事项 时间复杂度相对较高。如果图中包含从源…

计算机毕业设计Django+Vue.js考研推荐系统 考研分数线预测 中公考研爬虫 混合神经网络推荐算法 考研可视化 机器学习 深度学习 大数据毕业设计

Python数据分析与可视化期末项目报告 项目名称&#xff1a; 考研推荐系统数据分析与可视化 学 号&#xff1a; 姓 名&#xff1a; …

【PHP开发工程师系统性教学】——thinkPHP的分页操作,不管有几页,用这个你想分几页就分几页

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…

MoneyPrinterPlus:AI自动短视频生成工具,详细使用教程

MoneyPrinterPlus是一款使用AI大模型技术,一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上的轻松赚钱工具。 之前有出过一期基本的介绍&#xff0c;但是后台收到有些小伙伴说&#xff0c;不知道如何使用。 今天我将会手把手的详细介绍…

怎么加密U盘数据?U盘加密软件哪个好?

U盘是我们在生活和工作中最常用的移动存储设备&#xff0c;而为了避免U盘数据泄露&#xff0c;我们需要使用U盘加密软件来加密保护U盘数据。那么&#xff0c;U盘加密软件哪个好呢&#xff1f;下面我们就一起来了解一下吧。 BitLocker加密 BitLocker是Windows系统提供的磁盘加密…

多种传感器在钢铁工业安全风险监测预警中的应用

中国作为钢铁行业的生产与消费大国&#xff0c;其钢铁冶炼流程的复杂性和长周期性使得各环节中频繁出现的有毒有害、易燃易爆气体以及粉尘等危险物质成为行业安全管理的重大挑战。为了保障工作人员的安全&#xff0c;多种传感器在安全风险监测预警中的应用显得尤为重要。 钢铁产…

java从红外图片提取温度,计算超过阈值的温度占总面积的百分比

灰度图是单通道图&#xff0c;像素只有一个值&#xff1a;灰度值。灰度值越高&#xff0c;则图像越亮。 现在我们已经知道我们看到一张灰度图是由许多不同灰度值的像素点构成&#xff0c;而每个像素就是一个越亮的像素&#xff0c;灰度值越高&#xff0c;最高值是255&#xff…

Latex的参考文献中显示三个问号???——解决办法

1、问题描述 在使用spring模板&#xff0c;并引用book时&#xff0c;末尾的引文地方出现三个???由于使用的bibtex是直接从谷歌学术中导出来的&#xff0c;其中仅包含作者&#xff0c;书名&#xff0c;出版社&#xff0c;年份等&#xff0c;缺少了重要的信息。结果导致在出版…

什么!没有Starter的阿里云OSS也能集成到SpringBoot?

实际上&#xff0c;我们在Maven存储库中尝试搜索阿里云OSS。在此过程中&#xff0c;我们会发现阿里云官方未提供一种集成Spring Boot的模式&#xff0c;即xxx-Springboot-Starter&#xff0c;显然&#xff0c;这是一个需要自行定制的组件。然而&#xff0c;如今许多企业在研发过…

LeetCode | 520.检测大写字母

这道题直接分3种情况讨论&#xff1a;1、全部都为大写&#xff1b;2、全部都为小写&#xff1b;3、首字母大写其余小写。这里我借用了一个全是大写字母的串和一个全为小写字母的串进行比较 class Solution(object):def detectCapitalUse(self, word):""":type …

【机器学习】计算机图形和深度学习模型NeRF详解(1)

1.引言 1.1.1. NeRF研究的背景 人们在拍照的时候&#xff0c;往往会中各个角度进行拍摄&#xff0c;以呈现出物体的全貌和美丽。下图的照片&#xff0c;拍摄的是一架楼梯&#xff0c;但是拍摄的角度完全不同&#xff1a; 我们可以看到这些图片都是楼梯的照片&#xff0c;但拍…

Training language models to follow instructions with human feedback 论文阅读

论文原文&#xff1a;https://arxiv.org/pdf/2203.02155 论文简介 语言模型越大并不意味着它能更好的理解用户的意图&#xff0c;因此在这篇论文中&#xff0c;展示了根据人的反馈对模型进行微调&#xff0c;使得语言模型能够在各种人物上更好的理解用户的意图。在评估中&…

树莓派4B学习笔记11:PC端网线SSH连接树莓派

今日继续学习树莓派4B 4G&#xff1a;&#xff08;Raspberry Pi&#xff0c;简称RPi或RasPi&#xff09; 本人所用树莓派4B 装载的系统与版本如下: 版本可用命令 (lsb_release -a) 查询: Opencv 版本是4.5.1&#xff1a; 今日学习使用网线连接树莓派&#xff0c;网线可以提供更…

使用 C# 学习面向对象编程:第 8 部分

抽象方法 亲爱的读者&#xff0c;本文是 OOP 的第四大支柱&#xff0c;也是最后一大支柱。对于 OOP 初学者来说&#xff0c;这很容易让人困惑。因此&#xff0c;我们用非常简单的语言提供了一个示例。 “抽象用于管理复杂性。无法创建抽象类的对象。抽象类用于继承。” 例如…

降噪领夹麦克风哪个牌子好?揭秘无线领夹麦克风哪个降噪好

相信很多新手视频创作者都有一个疑问&#xff1a;为什么别人的视频或者直播音质这么清晰&#xff0c;几乎没什么噪音呢&#xff1f;其实最主要的就是麦克风的原因&#xff0c;相机或手机内置的麦克风是无法提供高质量的音频记录以及很好的指向性的。 想要拍摄出来的视频作品拥有…

每一个男人都曾有一个机器人的梦想

每一个男人都曾有一个机器人的梦想 我也有 每一个男人都曾有一个机器人的梦想。对于我来说&#xff0c;这个梦想始于童年时代&#xff0c;那时变形金刚风靡一时&#xff0c;几乎所有80后的孩子都为之疯狂。我是80后中的一员&#xff0c;那时候的科技还远没有如今这般发达&#…

《现代通信原理与技术》码间串扰和​​​​​​​无码间串扰的眼图对比实验报告

实 验&#xff1a;码间串扰和无码间串扰的眼图对比实验报告 摘 要&#xff1a; 在数字通信系统中&#xff0c;码间串扰&#xff08;Inter-Symbol Interference, ISI&#xff09;是影响信号质量和系统性能的重要因素之一。本实验通过MATLAB软件生成并对比了受码间串扰影响和未…

华为昇腾异构计算架构CANN及AI芯片简介

异构计算架构CANN 异构计算架构CANN&#xff08;Compute Architecture for Neural Networks&#xff09;是华为针对AI场景推出的异构计算架构&#xff0c;向上支持多种AI框架&#xff0c;包括MindSpore、PyTorch、TensorFlow等&#xff0c;向下服务AI处理器与编程&#xff0c;…

Open To Buy(OTB)计划:零售业者的库存管理利器

在当今快速变化的服装市场中&#xff0c;如何高效、精准地进行商品管理成为了服装企业竞争的关键。OTB&#xff08;Open-to-Buy&#xff09;作为一种有效的商品管理方法&#xff0c;在企业管理中扮演着至关重要的角色。它基于预算、商品计划以及市场需求等多维度因素&#xff0…