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

news2024/11/23 22:46:06

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

一、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

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

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

相关文章

@JsonValue和@JsonCreator使用

当实体类中的属性为枚举类型时&#xff0c;将其序列化成json字符串传给前端&#xff0c;传递的应该是有效的值而不是枚举常量。 1. Get-Started Data public class Student {private Long id;private String userName;private String telephone;private String email;private …

C语言 | Leetcode C语言题解之第145题二叉树的后序遍历

题目&#xff1a; 题解&#xff1a; void addPath(int *vec, int *vecSize, struct TreeNode *node) {int count 0;while (node ! NULL) {count;vec[(*vecSize)] node->val;node node->right;}for (int i (*vecSize) - count, j (*vecSize) - 1; i < j; i, --j)…

【C语言】12.C语言内存函数

文章目录 1.memcpy使用和模拟实现2.memmove使用和模拟实现3.memset函数的使用4.memcmp函数的使用 memcpy&#xff1a;内存拷贝 memmove&#xff1a;内存移动 memset&#xff1a;内存设置 memcmp&#xff1a;内存比较 1.memcpy使用和模拟实现 memcpy&#xff1a;内存拷贝 void…

【python】OpenCV—Background Estimation(15)

文章目录 中值滤波中值滤波得到图像背景移动侦测 学习来自 OpenCV基础&#xff08;14&#xff09;OpenCV在视频中的简单背景估计 中值滤波 中值滤波是一种非线性平滑技术&#xff0c;主要用于数字信号处理&#xff0c;特别是在图像处理中去除噪声。 一、定义与原理 定义&am…

如何使用Python在word文档中创建表格

如何使用Python在word文档中创建表格 介绍效果代码 介绍 本文将介绍如何使用Python库python-docx在Word文档中创建表格。 效果 插入表格前的word文档&#xff1a; 插入表格后的word文档&#xff1a; 代码 from docx import Document# 加载现有的Word文档 doc Document(…

利安科技上市首日股价大涨:2023营收净利润下滑,募资金额大幅缩水

《港湾商业观察》施子夫 6月7日&#xff0c;宁波利安科技股份有限公司&#xff08;以下简称&#xff0c;利安科技&#xff09;正式在深交所创业板挂牌上市&#xff0c;股票简称为利安科技&#xff0c;股票代码300784。 上市当天&#xff0c;利安科技股价大涨348.76%。 2022年…

高考志愿填报,如何识别兴趣和擅长?

一年一度的高考落下帷幕&#xff0c;是不是就意味着放松了&#xff1f;解放了&#xff1f; 高考志愿填报的重要性&#xff0c;依旧重要&#xff0c;考得好不如报的好。 考分高低固然是关键&#xff0c;而填报高考志愿&#xff0c;才是真正决定人生的一次选择&#xff0c;这一…

vue3 defineComponent + 渲染函数h + 全局注册​

defineComponent 是 Vue 3 中的一个函数&#xff0c;用于定义一个组件。它是 Vue 3 的组合式 API 的一部分&#xff0c;提供了一种更加灵活和组织化的方式来定义组件。在 Vue 2 中&#xff0c;我们通常使用一个对象来定义组件&#xff0c;而在 Vue 3 中&#xff0c;defineCompo…

Python深度学习基于Tensorflow(17)基于Transformer的图像处理实例VIT和Swin-T

文章目录 VIT 模型搭建Swin-T 模型搭建参考 这里使用 VIT 和 Swin-T 在数据集 cifar10 上进行训练 VIT 模型搭建 导入需要的外部库 import numpy as np import tensorflow as tf import matplotlib.pyplot as plt import matplotlib.gridspec as gridspec这里我们接着使用 ci…

idea开发工具清除Git凭证(含Git凭证管理策略)

前言 网上很多人出现这个问题&#xff0c;也有很多文章或博客来说明这个问题&#xff0c;但是几乎都没有说到点子上&#xff0c;全网几乎都说清除credential.helper配置或者清空windows凭证管理器&#xff0c;还有一些文章说清除IDEA缓存&#xff0c;其实都是不对的。 creden…

我在地球学Python基础第一篇:计算机组成原理基本知识和编程语言基础知识

业精于勤荒于嬉&#xff0c;行成于思毁于随。 今天开始系统记录学习Python 第一篇 计算机组成原理一、什么是计算机二、计算机是由什么组成的&#xff1f;2.1 硬件系统2.2 软件系统 三、计算机如何处理程序&#xff1f;四、编程语言 计算机组成原理 学习目标&#xff1a; 1、…

【docker实战】如何上传镜像到自己的私有仓库

上一篇文章讲了【docker实战】如何登陆到自己的私有仓库&#xff1f; – 经云的清净小站 (skycreator.top)。那么后面的工作就是如何上传镜像到自己的私有仓库了。 下面的操作是使用docker login命令成功之后的操作&#xff0c;没有login请先login。 我打算将本地的ubuntu:18…

攻防演练之-网络安全产品大巡礼二

书接上文&#xff0c;《网络安全攻防演练风云》专栏之攻防演练之-网络安全产品大巡礼一&#xff0c;这里。 “咱们中场休息一会&#xff0c;我去接杯水哈”&#xff0c;看着认真听讲的众人&#xff0c;王工很是满意&#xff0c;经常夹在甲乙两方受气的他&#xff0c;这次终于表…

在Spring Boot中使用Sa-Token实现路径拦截和特定接口放行

在Spring Boot中使用Sa-Token实现路径拦截和特定接口放行 很喜欢的一段话&#xff1a;别想太多&#xff0c;好好生活&#xff0c;也许日子过着过着就会有答案&#xff0c;努力走着走着就会有温柔的着落。 春在路上&#xff0c;花在枝上&#xff0c;所有的美好都在路上&#xff…

Coap协议在物联网中的实战

1. 前言 提到CoAP不能不提MQTT协议&#xff0c;MQTT协议可以保持长链接&#xff0c;具有一定的实时性&#xff0c;云端向客户端发送消息&#xff0c;设备端可以在最短的时间内接收并作出响应&#xff0c;所以MQTT更适合于实时控制场景&#xff0c;需要保持长连接&#xff0c;不…

WDF驱动开发-I/O请求的处理(三)

创建框架请求对象 框架请求对象表示 I/O 管理器已发送到驱动程序的 I/O 请求。 基于框架的驱动程序通过调用 框架请求对象方法来处理每个 I/O 请求。 每个 I/O 请求都包含一个 WDM I/O 请求数据包 (IRP 结构) &#xff0c;但基于框架的驱动程序通常不需要访问 IRP 结构。 大…

【AI大模型】Transformers大模型库(八):大模型微调之LoraConfig

目录 一、引言 二、LoraConfig配置参数 2.1 概述 2.2 LoraConfig参数说明 2.3 代码示例 三、总结 一、引言 这里的Transformers指的是huggingface开发的大模型库&#xff0c;为huggingface上数以万计的预训练大模型提供预测、训练等服务。 &#x1f917; Transformers …

3.2 窗口滚动条

本节讲述窗口滚动条的简单使用方法。如果窗口客户区的内容太多&#xff0c;为了方便浏览窗口客户区的所有内容&#xff0c;就需要在创建窗口时添加窗口垂直或水平滚动条样式。窗口过程处理WM_CREATE消息时初始化滚动条的位置和滚动范围。窗口过程处理WM_VSCROLL或WM_HSCROLL消息…

讲透计算机网络知识(实战篇)01——计算机网络和协议

一、计算机网络和协议 1、网络和互联网络 1.1 网络、互联网、Internet 用交换机、集线器连接在一起的计算机构成一个网络。 用路由器连接多个网络&#xff0c;形成互联网。 全球最大的互联网&#xff1a;Internet。 1.2 网络举例 家庭互联网 图中的无线拨号路由器既是路由…

281 基于matlab的路径规划GUI交互

基于matlab的路径规划GUI交互。包括蚁量系统、蚁周系统、蚁密系统、蚁群系统、免疫混合算法。11种路径规划数据&#xff0c;最多225个规划点。蚁群和免疫算法的参数可进行设置&#xff0c;使得效果最佳。动态显示可视化规划结果。程序已调通&#xff0c;可直接运行。