maven基本操作和配置(idea版基础版)

写在前面:为一位朋友写的一个博客,有需要都可以查看!

一、maven是什么?

一句话:管理依赖工具,统一项目结构便于开发,把项目开发和管理的过程抽象成对象模型来管理(pom模型)

基本项目结构概念图:

19ab3e57db3b496fad76f000471d551b.png

maven流程:本质还是来自中央仓库(国外)我们访问起来较困难,所以有必要配置一个镜像或者你使用魔法!

1027beeb302647e18d6b6457d968e107.png

二、maven的下载安装

maven下载地址(点击跳转)

如果你的是Linux系统(或虚拟机中的Linux)使用targz文件,Windows使用zip文件

4d7d48e90f564f13a84c453395fcc12c.png

下载之后安装直接解压在你想要放的位置:

如果你已经配置了Java_home那就不用再配置这个环境了但需要配置MAVEN_HOME:

这个是新建一个系统环境变量:

27d3c25ee6b94560bf0168c326eaf772.png

path环境变量:

62dc53869e9c4353a23e24a0e3464609.png

建议上移至最上方不移动一般也可以!

检验是否配置完成:

4c4be0dc6c144319b9aa7268a3caf4d2.png

出现这个界面就说明成功了!

三、maven仓库配置基础

先来一张图(了解三种仓库):

f887a1c6072649a7bedfca90d8f4ff45.png

素材来源于网络

资源坐标:

maven坐标组成:

groupId:定义当前Maven项目隶属于组织名称

artifactId:定义当前项目名称

version:定义当前版本(不必须,因为后期如果使用springboot框架继承的父项目会带有版本防止依赖冲突)

packaging:定义项目打包方式(不属于maven坐标组成但是很重要)


依赖官网(所有的坐标都是以官方为准需要时直接查,尽量不要自己写,当然除了一些常用的坐标非常熟悉了就不用查了):maven依赖查看地址点击跳转这个网址可能会陪伴Java工程师一辈子(一定要记住哟)!

71488b4cbaa74f8195ca3c1ea94bee10.png

这就是坐标直接复制用!


仓库配置(便于管理和引入依赖):

先建一个目录:(任意地方建议是D盘):

e8dd21bac40e41c394922396c011c98a.png

接下来改配置:

进入到conf->settings.xml:

89807aacd2144da790a8a46d345156b7.png

把最后一行改成你自己的新建的仓库地址即可

镜像配置(阿里云镜像):

2fc2f80a3beb402fa85c59b08daf2b1e.png

引入alimaven坐标!

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

示意:

34cb60d69f6d48bdbd6ed3089d65da7b.png

到这里就已经完成了maven的搭建了!


四、IDEA创建maven工程

先以最原始的方法创建:

创建一个空项目(建议直接创建maven项目不要创建空项目):

84d339aab00a48a980ffea1e47058710.png

直接创建:

91d42cde894c414dbe1f08acb29798e3.png

完成maven配置引用:

00aefe69d0424c8e9c85c70b840097ff.png

在设置中找到你的构建工具需要配置的项是:Maven主路径,用户设置文件,本地仓库改成你自己的路径!

直接创建maven工程:

创建maven工程(这里可以选择模板比如说webapp做web开发等等):

f2f0ed5315d1414ea48cae319ec5abf3.png

创建之后:

54c686d5e1f948bfb20d068eaa5c46fd.png

在pom就可以引入你想要的依赖了(记得刷新):

f3c42a15b6b0483abaca10cc74bf2107.png

刷新按钮:

511779f6cdac4797bc8a39c87ffab4f1.png

这里是插件:

9742ae0056cf462db2dfdfa165a33322.png

这里就是依赖(用到就引入依赖坐标):

0b89c7b2a4a84f2ca95f45baf9a66b36.png

五、依赖管理:

依赖传递:

7ffa790c456b4e1080ee838471e95532.png

c4e795492f1340baa0242029d65f54af.png

这两个依赖都是另外的模块:

7424ff4d4811416abf615d652a081b6f.png

47b0829e12d54d78a85255d96d557669.png

这样另外两个模块的依赖在引用方也能使用!

依赖冲突:

9606fb899bbc4532a4b25a3c93cd5f39.png

路径优先原则:当依赖中有相同的资源时层级越深优先级越低

声明优先原则:当资源在相同的层级时,配置顺序靠前的覆盖配置顺序靠后的

特殊优先原则:当同级配置了相同资源的不同版本,后面配置的覆盖前面的


可选依赖:

c3537748a76e4d92933270ac9066c56e.png

对外隐藏不能被外界使用(私房钱)被动断开!

排除依赖:

7e0728b5591f4b12b847d5dfdbf9b0bb.png

你传过来了依赖,我不要,就可以排除掉(不写版本)主动断开!


依赖属性(scop):

2e4fd1cf9998418aa40703aebcca5a2f.png

配置scop有这几个范围:

d0a31386f9824516a2a7db30dcc08e66.png

比如:

663a7db3a6f941109169f7ffafb44ba3.png

这就是在编译时起作用!

依赖范围的传递性(记住这张表):

c1e35d8031c64223aaa9abab0634a2b6.png

解释:

直接依赖假设为项目一,间接依赖假设为项目二:

当项目一配置为compile项目二配置为compile结果在项目二就是compile;

在项目一中配置compile项目二配置为runtime结果就是项目二为runtime;


ok!先简单入个门,一定要亲自操作!后面还有很多种情况:分模块开发,版本管理,资源配置,配置私服等等!很多,任重而道远,此处为初学者使用!有什么问题都可以在评论区留言!

396c754a759247dd9945687b18ddb340.png

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Milvus 2.4 向量库安装部署

1、linux 已有docker环境 2、安装fio命令 yum install -y fio 2、mkdir test-data fio --rwwrite --ioenginesync --fdatasync1 --directorytest-data --size2200m --bs2300 --namemytest ctrlc 3、lscpu 4、docker -v 6、安装docker compose组件 yum -y install python3-…

八、C语言:操作符详解

一、移位操作符 1.1左移操作 左边丢弃&#xff0c;右边补0 1.2右移操作 算数右移&#xff1a;右边丢弃&#xff0c;左边补原符号位 逻辑右移&#xff1a;右边丢弃&#xff0c;左边补0 int main() {int a -1;int b a >> 1;printf("b%d\n",b);return 0; } 原码…

贪吃蛇小游戏简单制作-C语言

文章目录 游戏背景介绍实现目标适合人群所需技术浅玩Window API什么是API控制台程序窗口大小,名称设置 Handle(句柄)获取句柄 坐标结构体设置光标位置 光标属性获取光标属性设置光标属性 按键信息获取 贪吃蛇游戏设计游戏前的初始化设置窗口的大小和名称本地化设置 宽字符Waht …

采用PHP开发的一套(项目源码)医疗安全(不良)事件报告系统源码:统计分析,持续整改,完成闭环管理

采用PHP开发的一套&#xff08;项目源码&#xff09;医疗安全&#xff08;不良&#xff09;事件报告系统源码&#xff1a;统计分析&#xff0c;持续整改&#xff0c;完成闭环管理 医疗安全确实是医疗领域中不容忽视的重要问题。医院不良安全事件&#xff0c;即医疗质量安全不良…

宋街宣传活动-循环利用,绿色生活

善于善行回收团队是一支致力于推动环保事业&#xff0c;积极倡导和实践绿色生活的志愿者队伍。我们的宗旨是通过回收再利用&#xff0c;减少资源浪费&#xff0c;降低环境污染&#xff0c;同时提高公众的环保意识&#xff0c;共同构建美丽和谐的家园。 善于善行志愿团队于2024年…

免费、无广告、界面简洁、简单好用的轻量级思维导图软件

一、简介 1、一款免费、无广告、界面简洁、简单好用的轻量级思维导图软件。它目前支持 Windows、MacOS 平台。其中 Windows 版大小在 104MB 左右&#xff08;UWP 应用&#xff09;&#xff0c;Mac 版大小在 167MB 左右。 二、下载 1、下载地址&#xff1a; MindAtom官网&#…

【保姆级讲解下QT6.3】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

用户和权限

Linux的root用户 无论是Windows、MacOS、Linux均采用多用户的管理模式进行权限管理 超级管理员: root用户拥有最大的系统操作权限(不建议长期使用root用户&#xff0c;避免带来系统损坏)普通用户的权限: 一般在其HOME目录内是不受限的,在HOME目录外仅有只读和执行权限&#x…

go-zero整合Excelize并实现Excel导入导出

go-zero整合Excelize并实现Excel导入导出 本教程基于go-zero微服务入门教程&#xff0c;项目工程结构同上一个教程。 本教程主要实现go-zero框架整合Excelize&#xff0c;并暴露接口实现Excel模板下载、Excel导入、Excel导出。 go-zero微服务入门教程&#xff1a;https://blo…

【深度学习】AI换脸,EasyPhoto: Your Personal AI Photo Generator【一】

论文&#xff1a;https://arxiv.org/abs/2310.04672 文章目录 摘要IntroductionTraining Process3 推理过程3.1 面部预处理3.3 第二扩散阶段3.4 多用户ID 4 任意ID5 实验6 结论 下篇文章进行实战。 摘要 稳定扩散Web UI&#xff08;Stable Diffusion Web UI&#xff0c;简称…

MYSQL八、MYSQL的SQL优化

一、SQL优化 sql优化是指&#xff1a;通过对sql语句和数据库结构的调整&#xff0c;来提高数据库查询、插入、更新和删除等操作的性能和效率。 1、插入数据优化 要一次性往数据库表中插入多条记录&#xff1a; insert into tb_test values(1,tom); insert into tb_tes…

CyberDAO:引领Web3时代的DAO社区文化

致力于Web3研究和孵化 CyberDAO自成立以来&#xff0c;致力于推动Web3研究和孵化&#xff0c;吸引了来自技术、资本、商业、应用与流量等领域的上千名热忱成员。我们为社区提供多元的Web3产品和商业机会&#xff0c;触达行业核心&#xff0c;助力成员捕获Web3.0时代的红利。 目…

远程链接服务 ssh

① 指定用户身份登录 ssh root10.36.105.100 ssh jim10.36.105.100 ② 不登陆远程执行命令 ssh root10.36.105.100 ls /opt ③ 远程拷贝 scp -r // 拷贝目录 -p // 指定端口 将本地文件拷贝给远程主机 scp -r /opt/test1 10.36.105.100:/tmp/// 将本…

Windows电脑清理C盘内存空间

ps&#xff1a;过程截图放在篇末 一、%tmp%文件 win R键呼出运行窗口&#xff0c;输入 %tmp% 自动进入tmp文件夹&#xff0c;ctrl A全选删除 遇到权限不足&#xff0c;正在运行&#xff0c;丢失的文件直接跳过即可 二、AppData文件夹 1、pipcache 在下列路径下面&…

小目标检测篇 | YOLOv8改进之空间上下文感知模块SCAM + 超轻量高效动态上采样DySample

前言:Hello大家好,我是小哥谈。小目标检测是计算机视觉领域中的一个研究方向,旨在从图像或视频中准确地检测和定位尺寸较小的目标物体。相比于常规目标检测任务,小目标检测更具挑战性,因为小目标通常具有低分辨率、低对比度和模糊等特点,容易被背景干扰或遮挡。本篇文章就…

Unity 实现WebSocket 简单通信——客户端

创建连接 ClientWebSocket socket new ClientWebSocket(); string url $"ws://{ip}:{port}"; bool createUri Uri.TryCreate(url, UriKind.RelativeOrAbsolute, out Uri uri); if (createUri) {var task socket.ConnectAsync(uri, CancellationToken.None);task…

django学习入门系列之第二点《浏览器能识别的标签1》

文章目录 文件的编码(head)网站表头信息(head)标题&#xff08;body&#xff09;div和span往期回顾 文件的编码(head) <!--浏览器会以"UTF-8"这种编码来读取文件--> <meta charset"UTF-8">网站表头信息(head) <title>Title</title&…

Android帧绘制流程深度解析 (一)

Android帧绘制技术有很多基础的知识&#xff0c;比如多buffer、vsync信号作用等基础知识点很多笔记讲的已经很详细了&#xff0c;我也不必再去总结&#xff0c;所以此处不再过多赘述安卓帧绘制技术&#xff0c;基础知识这篇文章总结的很好&#xff0c;一文读懂"系列&#…

VBA即用型代码手册:删除空列Delete Empty Columns

我给VBA下的定义&#xff1a;VBA是个人小型自动化处理的有效工具。可以大大提高自己的劳动效率&#xff0c;而且可以提高数据的准确性。我这里专注VBA,将我多年的经验汇集在VBA系列九套教程中。 作为我的学员要利用我的积木编程思想&#xff0c;积木编程最重要的是积木如何搭建…

细说ARM MCU的串口接收数据的实现过程

目录 一、硬件及工程 1、硬件 2、软件目的 3、创建.ioc工程 二、 代码修改 1、串口初始化函数MX_USART2_UART_Init() &#xff08;1&#xff09;MX_USART2_UART_Init()串口参数初始化函数 &#xff08;2&#xff09;HAL_UART_MspInit()串口功能模块初始化函数 2、串口…