Maven的基本使用

Maven的基本使用

  • 一、为什么要使用Maven
    • 1.1 方便添加第三方Jar包
    • 1.2 方便获取第三方Jar包(中央仓库)
    • 1.3 解决了依赖问题
    • 1.4 解决了依赖冲突
    • 1.4 项目管理更清晰
    • 1.5 总结
  • 二、Maven的下载
  • 三、配置Maven本地仓库和中央仓库
    • 3.1 Settings文件
    • 3.2 配置本地仓库
    • 3.3 配置中央仓库(镜像地址)
  • 四、如何在IDEA中使用Maven
    • 4.1 IDEA中配置Maven
    • 4.2 IDEA中使用Maven
    • 4.3 代码实例
    • 4.3 打包方式
  • 五、Lifecycle

一、为什么要使用Maven

1.1 方便添加第三方Jar包

刚开始用Maven的时候 本地仓库是空的
后面会越用越多 但是同样的Jar包只会下载一次

传统的拷贝jar包到lib目录下的方式 太消耗空间资源 甚至会影响到项目运行效率
在这里插入图片描述

1.2 方便获取第三方Jar包(中央仓库)

项目运行 现在本地仓库找 如果没有 这个时候就会去Maven的中央仓库去下载(需要联网)到本地仓库 然后再跟上面那样建立连接
这样不仅省事 而且从中央仓库下载来的jar更规范准确

1.3 解决了依赖问题

Maven很好的解决了有些jar包的依赖问题
在这里插入图片描述

1.4 解决了依赖冲突

Maven可以解决包之间的冲突

在这里插入图片描述

1.4 项目管理更清晰

就是一种解耦的思想
模块化编程
在这里插入图片描述

1.5 总结

Maven的优势主要在于对于Jar包的管理(导包 下包 解决依赖冲突等问题)
以及对于项目的管理(项目的模块化拆分)
在这里插入图片描述
Maven项目的结构很经典
下面这种结构看到了就知道是Maven项目
在这里插入图片描述

二、Maven的下载

我的安装位置
在这里插入图片描述

配置环境变量 建议就在系统变量那里配
在这里插入图片描述在这里插入图片描述

cmd使用mvn -v测试
注意:之前JDK配置的环境变量 按照约定 最好就写成%JAVA_HOME%
虽然说变量名是随意的
但是比如说Maven 这些依赖Java的软件 他会自动检索JDK(默认找JAVA_HOME)
如果不配置成JAVA_HOME 那么mvn -v 可能会报错

打印了Maven版本信息 同时也打印了JDK版本
这也说明Maven也是用Java写的 需要Java的环境
在这里插入图片描述

三、配置Maven本地仓库和中央仓库

3.1 Settings文件

要对Maven做一系列个性化设置 都在这里改
在这里插入图片描述

3.2 配置本地仓库

默认情况如下在C:\Users\Administrator.m2\repository
所以啥也不改 也能用
但是一直往C盘下东西显然是不太好的在这里插入图片描述

更改本地仓库
在这里插入图片描述

3.3 配置中央仓库(镜像地址)

默认的网址是国外的
访问卡的一批
所以说要重新制定一下
要不然在默认地址下载需要的jar包太慢了
在这里插入图片描述

镜像可以简单的理解为
国内有一些大厂把国外他们服务器上的jar包拷贝了一份放在国内的服务器上
由国内的厂商来维护
这里配置的是阿里云的镜像地址

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

四、如何在IDEA中使用Maven

4.1 IDEA中配置Maven

在不做任何配置之前 Maven和我的编译器毫无关联
在这里插入图片描述

上面三个是必须配置的
接下来的建议也配置好 虽然不影响使用
在这里插入图片描述

4.2 IDEA中使用Maven

创建空项目
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

4.3 代码实例

main目录用于存放主程序
java目录用于存放源代码文件
resources目录用于存放配置文件和资源文件
test目录用于存放测试程序

在这里插入图片描述

在这里插入图片描述

4.3 打包方式

默认情况下打成jar包(纯服务端 没前端 打包成jar就行)
如果是web工程 建议打包成war包(不仅有后端代码 还有前端代码 比如jsp等)
如果出现了继承 就是pom包(作为父工程出现)
给pom方式的去打包 不会生成jar包 会生成一个pom文件
在这里插入图片描述

五、Lifecycle

在这里插入图片描述

clean:清理一下生成的.class那些文件
validate:检查一下当前的Maven项目结构是否正常
compile:把main下的代码 编译成.class文件 这里针对main目录下的代码
test:把test目录下的代码编译成.class文件并输出结果这里针对的是test目录下的代码
注意:如果我直接执行test 也是可以的 前面的几步都会一起完成
package:打包当前的模块/项目

install:把当前项目打包成jar包并且保存到本地仓库去
这里的具体位置由IDEA Settings指定的仓库位置+本项目/模块的坐标来决定
在这里插入图片描述

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

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

相关文章

UE5数字孪生系列笔记(二)

智慧城市数字孪生系统 制作流云动画效果 首先添加一个图像在需要添加流云效果的位置 添加动画效果让其旋转 这个动画效果是程序开始就要进行的&#xff0c;所以要在EventConstruct中就可以启动这个动画效果 添加一个一样的图像在这里&#xff0c;效果是从此处进行放大消散 添…

海豚调度系列之:任务类型——SQL节点

海豚调度系列之&#xff1a;任务类型——SQL节点 一、SQL节点二、创建任务三、任务参数四、任务样例五、运行该任务成功之后在hive中查询结果六、使用前置sql和后置sql示例 一、SQL节点 SQL任务类型&#xff0c;用于连接数据库并执行相应SQL。 二、创建任务 点击项目管理-项…

异步发送CompletableFuture<Void> future = CompletableFuture.runAsync(()

基于runAsync系列方法实现无返回值的异步计算 CompletableFuture future CompletableFuture.runAsync(() -> { sendTextMessage(userInfo,dxContent);//发送 });

Electron程序如何在MacOS下获取相册访问权限

1.通过entitiment.plist&#xff0c;在electron-builder签名打包时&#xff0c;给app包打上签名。最后可以通过codesign命令进行验证。 TestPhotos.plist electron-builder配置文件中加上刚刚的plist文件。 通过codesign命令验证&#xff0c;若出现这个&#xff0c;则说明成…

rancher是什么

Rancher Labs是制作Rancher的公司。Rancher Labs成立于2014年&#xff0c;是一家专注于企业级容器管理软件的公司。它的产品设计旨在简化在分布式环境中部署和管理容器的过程&#xff0c;帮助企业轻松地采用容器技术和Kubernetes。Rancher Labs提供的Rancher平台支持Docker容器…

element-plus 完成下拉切换功能

项目场景&#xff1a; element-plus element-plus 完成下拉切换功能&#xff0c;选用了popover 组件去进行样式修改&#xff0c;本来大概是要实现下面这样的样式效果&#xff0c;没想到调整的时候&#xff0c;这个选择的高亮模块总是超出。 实现效果&#xff1a; 解决方案&am…

【数据结构】二叉树---AVL树的实现

目录 一. 什么是AVL树 二. AVL树的结点结构定义 三. AVL树的动态平衡法 1. 左单旋转 --- RL(RotateLeft) 型调整操作 2. 右单旋转 --- RR(RotateRight) 型调整操作 3. 先左后右双旋转 --- RLR (RotateLeftRight) 型调整操作 4. 先右后左双旋转 --- RRL (RotateRightL…

【SpringBoot篇】再战 登录注册操作

文章目录 ⭐model.dto.user层&#x1f388;UserRegisterRequest.java&#x1f388;UserLoginRequest.java ⭐model.dto.entity层&#x1f388;User.java ⭐service层&#x1f388;UserService.java&#x1f388;UserServiceimpl.java ⭐controller层⭐mapper层&#x1f388;Use…

Parade Series - WebRTC ( < 300 ms Low Latency ) T.B.D

Parade Series - FFMPEG (Stable X64) 延时测试秒表计时器 ini/config.ini [system] homeserver storestore\nvr.db versionV20240312001 verbosefalse [monitor] listrtsp00,rtsp01,rtsp02 timeout30000 [rtsp00] typelocal deviceSurface Camera Front schemartsp ip127…

Ubuntu下txt中文显示乱码问题常规解决方法

在正常使用ubuntu 文档时&#xff0c;突然发现txt文档出现&#xff0c;如下情况 无法正常观看&#xff0c;后来搜了一下发现是gedit 没有对应打开文件的编码格式&#xff0c;Ubuntu用的是utf-8,所以打开会有乱码&#xff01;初始没有GBK和GB2312&#xff0c;把GBK和GB2312添加…

OpenMP 编程模型

OpenMP 内存模型 共享内存模型&#xff1a; OpenMP 专为多处理器/核心、共享内存机器设计&#xff0c;底层架构可以是共享内存UMA或NUM OpenMP 执行模型 基于线程的并行&#xff1a; OpenMP 程序基于多线程来实现并行&#xff0c; 线程是操作系统可以调度的最小执行单元。 …

全氟烷氧基树脂PFA容量瓶在实验室金属杂质测定实验中应用

PFA&#xff08;全氟烷氧基树脂&#xff09;容量瓶是一种高性能的实验室器皿&#xff0c;因其出色的化学稳定性和低吸附性而被广泛应用于各种高精度化学分析。在硅材料表面金属杂质含量的测定中&#xff0c;PFA容量瓶发挥了关键作用。 首先&#xff0c;要了解硅材料表面金属杂质…

高级JAVA工程师解决生产环境JVM宕机Java进程挡掉操作系统内存异常实例讲解

高级JAVA工程师解决生产环境JVM宕机Java进程挡掉内存溢出实例讲解 一、事故描述 生产环境Java进程莫名挡掉&#xff0c;JVM宕机。监控平台报警。生产停了&#xff0c;老板急了&#xff0c;客户爆了&#xff0c;怎么迅速解决事故&#xff1f;每次出现生产事故&#xff0c;都是…

mediapipe 实现姿态分析——举手检测

目录 人体姿态检测 效果展示 举手检测 行业应用 代码实现 代码分析 效果展示 代码修改&#xff0c;一只手举起即可 总结 啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦^_^啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦♪(^∇^*)啦啦啦…

《深入理解springCloud与微服务》笔记

第一章 微服务介绍 1.3 微服务的不足 1.3.2 分布式事务 CAP 理论&#xff0c;即同时满足“一致性”“可用性”和“分区容错”是 件不可能的事。 Consistency &#xff1a;指数据的强一致性。如果写入某个数据成功&#xff0c;之后读取&#xff0c;读到的都是新写入的数据&a…

百度云加速即将下线

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 松松商城作为多年百度云加速代理商&#xff0c;上周接到通知&#xff1a;百度云加速产品计划于2024年4月30日下线&#xff0c;目前也无法做实名了。 同时&#xff0c;百度云加速也开始逐步迁移到百度云&#xff0…

【Sql】MVCC有关问题,以及锁,日志和主从复制原理

目录 MVCC 解决什么问题? 实现原理 隐式字段 undo log Read View(读视图) InnoDB 对 MVCC 的实现 锁 分类 锁升级&#xff1f; InnoDB 的行锁&#xff1f; 死锁避免&#xff1f; 乐观锁和悲观锁 日志 主从复制原理 主从复制的作用 MySQL主从复制解决的问题 涉…

Java基于微信小程序的校园生活互助小助手

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

vue3 el-form中嵌套el-tabale 对输入动态校验

简单案例 <el-form :model"Form" :rules"rules" ref"FormRef" class"formDiv"><el-table :data"Form.copyWriters" style"width: 100%"><el-table-column label"文案链接"><temp…

Day33:安全开发-JavaEE应用SQL预编译Filter过滤器Listener监听器访问控制

目录 JavaEE-预编译-SQL JavaEE-过滤器-Filter JavaEE-监听器-Listen 思维导图 Java知识点 功能&#xff1a;数据库操作&#xff0c;文件操作&#xff0c;序列化数据&#xff0c;身份验证&#xff0c;框架开发&#xff0c;第三方库使用等. 框架库&#xff1a;MyBatis&#…