一.Maven简介

Maven的产生主要是为了解决Java项目中的两个问题:
1.依赖管理
传统 Java 项目在引入第三方库时,需要手动下载 JAR 包并维护复杂的依赖关系。Maven 提供了统一的依赖管理机制,通过简单的配置即可自动从仓库下载并引入所需的依赖,同时还能解决版本冲突问题。
2.项目构建
Java 项目的构建过程通常包括编译源代码(.java)为字节码(.class)、打包成 JAR 文件等多个步骤。Maven 提供了标准的构建生命周期和插件系统,使得整个构建过程自动化、规范化,极大地提高了开发效率。

Maven仓库的概念:

Maven的仓库分为本地仓库、私服仓库、中央仓库
本地仓库就是PC上保留的jar文件
私服仓库一般是公司内部的,可以上传自主开发的jar文件到私服仓库,便于日后开发
中央仓库是Maven官方维护的。

二.Maven的核心配置

在maven的conf文件夹下面,有一个settings.xml文件
在这里插入图片描述
{user.home}表示当前用户的家目录,我的用户是admin,所以进入admin就可以查看到
在这里插入图片描述
我们在下面再添加一行,就可以切换保存的目录了

另外一个需要配置的地方就是镜像,由于中央仓库是在国外的,所以有时候访问会慢很多,我们可以配置国内镜像

<mirror><id>aliyunmaven</id><mirrorOf>*</mirrorOf><name>aliyunmaven</name><url>https://maven.aliyun.com/repository/public</url>
</mirror>

接下来是配置Maven的jdk版本

<profile><id>jdk-17</id><activation><activeByDefault>true</activeByDefault><jdk>17</jdk></activation><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><maven.compiler.compilerVersion>17</maven.compiler.compilerVersion></properties>
</profile>

指定使用 Maven 构建出来的项目默认使用的 JDK 版本为 17。

三.在IDEA中配置Maven

选择新建一个Maven项目
archetype里选择快速开始构建
在这里插入图片描述
创建完后,下面这个就是maven项目的一个基本结构
在这里插入图片描述
然后我们还需要去配置一下Maven,因为IDEA里面的Maven一般是它自带的,我们需要把我们自己的Maven给导入进来在这里插入图片描述
这里选择刚才修改的Maven配置文件
在这里插入图片描述
然后点OK即可

四.Maven的生命周期和插件

在这里插入图片描述
validate是用来验证pom.xml写的是否正确,执行一下,显示成功了在这里插入图片描述
但是如果我注释掉一行呢在这里插入图片描述
在这里插入图片描述
就会出现报错,说我们缺少了groupid

compile进行编译,生成字节码文件
test会把项目中的test用例都给执行一遍
package把项目打包成jar或者war文件(还会先执行compile和test)
verify检查生成的jar包是否正确,是否符合标准
install把生成的jar包导入到本地仓库,导入maven
deploy把生成的jar包导入私服仓库

五.Maven的坐标

1. <groupID> 一般是公司或组织的唯一标识
2. <artifactID> 一般是项目的唯一标识
3.<version> 版本号

六.依赖管理

6.1 依赖范围

除了上面说到的3个依赖标签,还有一个<scope>标签
它用来知道依赖的范围
一般来说有compile,是编译和运行时需要的,默认是这个,可以省略不写
provided 编译时需要,运行时不需要
runtime 运行时需要,编译时不需要
test 只是在测试的时候需要,不会被打包到jar文件中
system从本地仓库查找,需要加上systemPath带上路径

<scope>system</scope><systemPath>${basedir}/lib/junit-3.8.2.jar</systemPath>

6.2 依赖冲突

比如我们在项目中添加了两个不同的依赖,他们又依赖了不同版本的同一个jar包的话,就会出现依赖冲突,到底应该使用哪一个jar包
有两个原则:
1.路径最短在这里插入图片描述
2.pom.xml优先使用最先声明的

七.父子工程

使用情境:
在实际开发中,会把一个大项目拆分成多个小项目,比方说用户管理,商品管理等等,但是如果每一个模块都需要重新配置一遍依赖就会很麻烦。
但是我们观察发现,像spring,mybatis几乎每个模块都会用到。我们就可以通过父子工程来管理这些依赖

我们先新建一个maven-parent在这里插入图片描述
把这里改成pom,表示最后不是生成jar文件,而是用来管理在这里插入图片描述
然后把这个项目的SRC文件也给删掉,在这里用不到
随后右键maven-parent选择新建一个模块在这里插入图片描述
在这里插入图片描述
可以看到这里child-a的pom.xml多了一个parent标签
而父工程的pom.xml多了modules模块在这里插入图片描述

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

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

相关文章

人脸活体识别3:C/C++实现人脸眨眼 张嘴 点头 摇头识别(可实时检测)

人脸活体识别3&#xff1a;C/C实现人脸眨眼 张嘴 点头 摇头识别(可实时检测) 目录 人脸活体识别3&#xff1a;C/C实现人脸眨眼 张嘴 点头 摇头识别(可实时检测) 1. 前言 2.人脸活体识别方法 &#xff08;1&#xff09;基于人脸动作的检测​​ &#xff08;2&#xff09;​…

【ABAP】 从无到有 新建一个Webdynpro程序

、新建WDA 可从SE80在web dynpro 组件下 创建 并按例以下操作 2、插入窗口 3、相关功能 3-1、展示消息 DATA:lo_api_controller TYPE REF TO if_wd_controller,lo_message_handler TYPE REF TO if_wd_message_manager.lo_api_controller ? wd_this->wd_get_api( ).lo_mess…

ALV常用设置(更新中一)

之前设置了checkbox&#xff0c;但是触发不了单击事件&#xff0c;且alv自带的复选&#xff0c;鼠标移动单击别处就会自动取消。 **增加多选框到fieldcat&#xff0c;**这一点很重要&#xff0c;然后设置 IF gs_fcat-fieldname sel.gs_fcat-checkbox X. gs_fcat-edit X. …

NumPy 或 PyTorch/TensorFlow 中的张量理解

(2, 2, 3) 形状的 3D 数组&#xff08;或张量&#xff09;的结构。 个人理解&#xff1a; 2个2维数组&#xff08;张量&#xff09;&#xff0c;2维数组&#xff08;张量&#xff09;里面有2个1维向量&#xff08;张量&#xff09;&#xff0c;1维向量&#xff08;张量&#x…

Linux环境下使用 C++ 与 OpenCV 实现 ONNX 分类模型推理

实验环境&#xff1a;Ubuntu 20.0 推理模型&#xff1a;ONNX分类模型 1. 安装依赖项 首先是需要安装依赖库&#xff0c;如g&#xff0c;cmake等&#xff0c;如果已经安装的话可以忽略 sudo apt install -y g sudo apt install -y cmake sudo apt install -y make sudo apt i…

AJAX 安装使用教程

一、AJAX 简介 AJAX&#xff08;Asynchronous JavaScript and XML&#xff09;是一种在无需重新加载整个网页的情况下&#xff0c;能够与服务器交换数据并更新部分网页内容的技术。它不是一种新语言&#xff0c;而是使用现有的标准组合&#xff1a;JavaScript XMLHttpRequest…

【牛客算法】牛客网编程题解:小红拼图

一、题目介绍 1.1. 题目链接 &#xff1a;小红拼图 https://www.nowcoder.com/questionTerminal/08b54686f0d14bd784d9d148c68a268a 1.2 题目介绍 小红正在玩一个拼图游戏&#xff0c;她有一些完全相同的拼图组件&#xff1a; 小红准备用这些组件来拼成一些图案。这些组件可…

买卖股票的最佳时机--js 算法

一、买卖股票的最佳时机 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。…

C#基础(WndProc)

WndProc 是操作系统与你的程序“对话”的通道​​。当用户点击鼠标、按下键盘&#xff0c;或系统事件&#xff08;如窗口移动&#xff09;发生时&#xff0c;Windows 会将这些事件打包成“消息”&#xff0c;发送给你的窗口&#xff0c;而 WndProc 就是接收和处理这些消息的函数…

记录一个 Linux中脚本无法执行的问题

问题描述&#xff1a; 在本地的window系统传的云服务器上一个.sh结尾的安装Java环境的脚本 上传到云服务器后&#xff0c;使用命令赋予执行权限 chmod x 文件名然后看一下这个脚本变绿了就可以了 然后开始尝试执行 ./脚本名 然后就报错了 然后开始排查问题 1.检查并修复 She…

Iceberg在图灵落地应用

导读 百度MEG上一代大数据产品存在平台分散、易用性差等问题&#xff0c;导致开发效率低下、学习成本高&#xff0c;业务需求响应迟缓。为了解决这些问题&#xff0c;百度MEG内部开发了图灵3.0生态系统&#xff0c;包括Turing Data Engine(TDE)计算&存储引擎、Turing Data…

FPGA设计的用户约束

FPGA设计的用户约束 文章目录 FPGA设计的用户约束FPGA设计的用户约束综合约束管脚约束位置约束时序约束小总结 FPGA设计的用户约束 至此&#xff0c;HDL到门级网表的转化已经完成&#xff0c;对于编译器来说&#xff0c;下一步的任务就是要将门级网表转换并映射到具体的FPGA硬…

Spring 生态创新应用:微服务架构设计与前沿技术融合实践

在数字化转型的深水区&#xff0c;企业级应用正面临从 “单体架构” 向 “分布式智能架构” 的根本性跃迁。Spring 生态以其二十年技术沉淀形成的生态壁垒&#xff0c;已成为支撑这场变革的核心基础设施。从 2002 年 Rod Johnson 发布《Expert One-on-One J2EE Design and Deve…

车牌识别与标注:基于百度OCR与OpenCV的实现(一)

车牌识别与标注&#xff1a;基于百度OCR与OpenCV的实现 在计算机视觉领域&#xff0c;车牌识别是一项极具实用价值的技术&#xff0c;广泛应用于交通监控、智能停车场管理等领域。本文将介绍如何在macOS系统下&#xff0c;利用百度OCR API进行车牌识别&#xff0c;并结合OpenC…

【系统分析师】2021年真题:论文及解题思路

文章目录 试题一&#xff1a;论面向对象的信息系统分析方法试题二&#xff1a;论静态测试方法及其应用试题三&#xff1a;论富互联网应用的客户端开发技术试题四&#xff1a;论DevSecOps技术及其应用 试题一&#xff1a;论面向对象的信息系统分析方法 信息系统分析是信息系统生…

OFA-PT:统一多模态预训练模型的Prompt微调

摘要 Prompt微调已成为模型微调的新范式&#xff0c;并在自然语言预训练甚至视觉预训练中取得了成功。参数高效的Prompt微调方法通过优化soft embedding并保持预训练模型冻结&#xff0c;在计算成本低和几乎无性能损失方面展现出优势。在本研究中&#xff0c;我们探索了Prompt…

【硬核数学】2.5 “价值标尺”-损失函数:信息论如何设计深度学习的损失函数《从零构建机器学习、深度学习到LLM的数学认知》

欢迎来到本系列硬核数学之旅的第十篇&#xff0c;也是我们对经典数学领域进行深度学习“升级”的最后一站。我们已经拥有了强大的模型架构&#xff08;基于张量&#xff09;、高效的学习引擎&#xff08;反向传播&#xff09;和智能的优化策略&#xff08;Adam等&#xff09;。…

雷卯针对灵眸科技EASY EAI nano RV1126 开发板防雷防静电方案

一、应用场景 1. 人脸检测 2. 人脸识别 3. 安全帽检测 4. 人员检测 5. OCR文字识别 6. 人头检测 7. 表情神态识别 8. 人体骨骼点识别 9. 火焰检测 10. 人脸姿态估计 11. 人手检测 12. 车辆检测 13. 二维码识别 二、 功能概述 1 CPU 四核ARM Cortex-A71.5GHz 2 …

【记录】Ubuntu|Ubuntu服务器挂载新的硬盘的流程(开机自动挂载)

简而言之&#xff0c;看这张图片就好&#xff08;可以存一下&#xff0c;注意挂载点/data可以自定义&#xff0c;挂载硬盘的位置/dev/sdb要改成步骤1中检查的时候查到的那个位置&#xff0c;不过这个图的自动挂载漏了UUID&#xff0c;可以通过blkid指令查找&#xff09;&#x…

六、软件操作手册

建议在飞书平台阅读此文。 我将沿着初来乍到的用户的浏览路径介绍“诤略参谋”应用。 目录 一、用户信息1.1 注册、登录、自动登录、忘记密码、修改用户名、修改密码、退出登录与个性化设置1.2 认识主界面与任务系统1.3 语义审查、Knowledge Cutoff 审查1.4 重要内容未保存提醒…