Maven 学习与IDEA配置

(一) Maven 概述

[1]. 简介

  • Apache Maven 是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档

  • 官网:http://maven.apache.org/

  • Maven是专门用于管理和构建Java项目的工具,它的主要功能有:

    1. 提供了一套标准化的项目结构:Maven提供了一套标准化的项目结构,所有IDE使用Maven构建的项目结构完全一样,所有IDE创建的Maven项目可以通用
      在这里插入图片描述
    2. 提供了一套标准化的构建流程:编译》测试》打包》发布
    3. 提供了一套依赖管理机制:依赖管理其实就是管理你项目所依赖的第三方资源 (jar包、插件…)

[2]. Maven 仓库

  • Maven 中的所需的依赖,可以从三个地方获取:
    1. 本地仓库:自己计算机上的一个目录
    2. 中央仓库:由Maven团队维护的全球唯一的仓库,https://repo1.maven.org/maven2/
    3. 远程仓库(私服):一般由公司团队搭建的私有仓库(非必要)
  • jar包的查找顺序:本地仓库 》 远程仓库(非必要) 》 中央仓库
  • 当本地仓库没有自己需要的 jar 包,从远程仓库或中央仓库下载之后会先放到本地仓库中。

(二) Maven 安装配置

  1. 下载 maven: https://maven.apache.org/download.cgi
    在这里插入图片描述

  2. 解压 apache-maven-3.9.6-bin.zip 放到方便找到的位置,既安装完成
    在这里插入图片描述

  3. 配置环境变量 MAVEN_HOME 为 Maven 的放置目录,然后点击确定,然后在 环境变量窗口的 path 中将 Maven 添加到环境变量中,然后依次点击各个窗口的确定按钮。

  4. 在 cmd 窗口中输入 mvn -verson,出现如下信息表示配置成功
    在这里插入图片描述

  5. 配置本地仓库:修改 conf/settings.xml 中的 <localRepository> 为一个指定目录,如果不配置这个文件,Maven 的默认仓库地址为:C:\Users(或者叫 “用户”)\ 自己的计算机名字.m2\repository
    在这里插入图片描述

在这里插入图片描述

  1. (非必要)配置阿里云私服:修改 conf/settings.xml 中的 标签,为其添加如下子标签:

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

在这里插入图片描述

(三) Maven 基本使用

[1]. Maven 常用命令

  • compile :编译
  • clean:清理
  • test:测试
  • package:打包
  • install:安装

[2]. Maven 生命周期

  • Maven 构建项目生命周期描述的是一次构建过程经历经历了多少个事件
  • Maven 对项目构建的生命周期划分为3套
    • clean:清理工作
    • default:核心工作,例如编译,测试,打包,安装等
    • site:产生报告,发布站点等
  • 同一生命周期内,执行后边的命令,前边的所有命令会自动执行

(四) IDEA 配置 Maven

[1]. IDEA 配置 Maven 环境

  1. 使用 IEDEA 创建一个空项目

  2. 选择 IDEA中 File --> Settings
    在这里插入图片描述

  3. 搜索 maven ,设置 IDEA 使用本地安装的 Maven,并修改配置文件路径

  4. Maven配置完成

[2]. Maven 坐标详情

  • 什么是坐标?
    • Maven 中的坐标是资源的唯一标识
    • 使用坐标来定义项目或引入项目中需要的依赖
  • Maven 坐标主要组成
    • groupId:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.alibaba)
    • artifactId:定义当前Maven项目名称(通常是模块名称,例如 order-service、goods-service)
    • version:定义当前项目版本号
      在这里插入图片描述

[3]. IDEA 创建 Maven 项目

  1. 创建一个空项目
  2. 创建模块,选择file->Project Structure,然后选择 Modules->New Module,然后选择选择Maven创建即可
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

  1. maven-demo/src/main/java文件夹下编写 HelloWorld.java 文件,并运行
    在这里插入图片描述

(五) 依赖管理

[1]. 使用坐标导入 jar 包

比如我想在 maven-demo 项目中引入 mysql 的 jar 包,找到 maven-demo 目录下的 pom.xml 文件

  1. 如果之前使用过 mysql 的 jar 包,当在 pom.xml 文件中输入如图的结构,当在<group>标签中输入mysql 字段,将会自动填写<artifactId>标签和<version>标签的内容。然后点击右上角的刷新按钮,将会下载 jar 包

在这里插入图片描述

  1. 如果之前没有使用给 jar 包,可以在 https://mvnrepository.com/ 网站找到,在这个网站中搜索 mysql,点击如图所示的位置。

在这里插入图片描述
3. 点击你想用的 jar 包版本,点击将进入另一个页面
在这里插入图片描述
4. 在新进入的页面中下滑页面,找到如图所示,将其粘到 pom.xml 文件中,然后点击右上角的刷新按钮将会下载对应的jar包
在这里插入图片描述
在这里插入图片描述
5. jar 包下载成功后,将在Maven中显示出来
在这里插入图片描述

[2]. 使用坐标导入 jar 包 – 自动导入

  1. 选择 IDEA中 File --> Settings

  2. 在弹出的面板中找到 Build Tools

  3. 选择 Any changes,点击 ok 即可生效
    在这里插入图片描述

  4. 以后在pom.xml文件中输入坐标后将自动导入对应的jar包

[3]. 使用坐标导入 jar 包 - 快捷方式

  1. 如果导入的jar 包是本地仓库有的,可以在 pom.xml 文件中 按 alt + insert,选择 Dependency

  2. 在弹出的面板中搜索对应坐标,然后双击选中对应坐标
    在这里插入图片描述

  3. 点击刷新按钮,使坐标生效,如果配置过自动导入就不用刷新了

[4]. 依赖范围

  • 通过设置坐标的依赖范围(scope),可以设置 对应jar包的作用范围:编译环境、测试环境、运行环境
  • 默认值:compile
    在这里插入图片描述在这里插入图片描述

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

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

相关文章

算法43:动态规划专练(最长回文子串 力扣5题)---范围模型

之前写过一篇最长回文子序列的博客算法27&#xff1a;最长回文子序列长度&#xff08;力扣516题&#xff09;——样本模型 范围模型-CSDN博客 在那一篇博客中&#xff0c;回文是可以删除某些字符串组成的。比如&#xff1a; 字符串为&#xff1a;a1b3c4fdcdba&#xff0c; 那…

Typora旧版链接(Win+Mac+Linux版)

记得点赞本文&#xff01;&#xff01;&#xff01; 链接&#xff1a;https://pan.baidu.com/s/1IckUvQUBzQkfHNHXla0zkA?pwd8888 提取码&#xff1a;8888 –来自百度网盘超级会员V7的分享

JavaWeb—— SpringBootWeb综合案例(登录功能、登录校验、异常处理)

案例-登录认证 目录 案例-登录认证1. 登录功能1.1 需求1.2 接口文档1.3 思路分析1.4 功能开发1.5 测试 2. 登录校验2.1 问题分析2.2 会话技术2.2.1 会话技术介绍2.2.2 会话跟踪方案2.2.2.1 方案一 - Cookie2.2.2.2 方案二 - Session2.2.2.3 方案三 - 令牌技术 2.3 JWT令牌2.3.1…

JS 对象数组排序方法测试

输出 一.Array.prototype.sort() 1.默认排序 sort() sort() 方法就地对数组的元素进行排序&#xff0c;并返回对相同数组的引用。默认排序是将元素转换为字符串&#xff0c;然后按照它们的 UTF-16 码元值升序排序。 由于它取决于具体实现&#xff0c;因此无法保证排序的时…

Zookeeper基础入门-1【集群搭建】

Zookeeper基础入门-1【集群搭建】 一、Zookeeper 入门1.1.概述1.2.Zookeeper工作机制1.3.Zookeeper特点1.4.数据结构1.5.应用场景1.5.1.统一命名服务1.5.2.统一配置管理1.5.3.统一集群管理1.5.4.服务器动态上下线1.5.5.软负载均衡 1.6.Zookeeper官网1.6.1.Zookeeper下载1.6.2.历…

软考56-上午题-【数据库】-数据库设计步骤2

一、回顾&#xff1a;数据库设计的步骤 1、用户需求分析&#xff1a;手机用户需求&#xff0c;确定系统边界&#xff1b; 2、概念设计&#xff08;概念结构设计&#xff09;&#xff1a;是抽象概念模型&#xff0c;较理想的是采用E-R方法。 3、逻辑设计&#xff1a;E-R图——…

带你了解 JavaScript 中的对象

带你了解 JavaScript 中的对象 基本概念 对象指的就是一个具体的事物&#xff0c;在JavaScript中, 字符串, 数值, 数组, 函数都是对象 每个对象中包含若干的属性和方法 属性: 事物的特征 方法: 事物的行为 1.使用字面量创建对象 使用{ }创建对象 属性和方法使用键值对的形式…

linux高级编程:线程(二)、进程间的通信方式

线程&#xff1a; 回顾线程&#xff08;一&#xff09;&#xff1a; 1.线程间通信问题 线程间共享同一个资源&#xff08;临界资源&#xff09; 互斥&#xff1a; 排他性访问 linux系统 -- 提供了Posix标准的函数库 -- 互斥量&#xff08;互斥锁&#xff09; 原子操作&#x…

1.1 简述卷积的基本操作,卷积和全连接层的区别?

1.1 简述卷积的基本操作&#xff0c;卷积和全连接层的区别&#xff1f; 摘要&#xff1a; 全连接层的输出层每个节点与输入层的所有节点连接。 卷积层具有局部连接和权值共享的特性。 问题&#xff1a;简述卷积的基本操作&#xff0c;并分析其与全连接层的区别。 分析与解答&a…

【计算机网络】深度学习HTTPS协议

&#x1f493; 博客主页&#xff1a;从零开始的-CodeNinja之路 ⏩ 收录文章&#xff1a;【计算机网络】深度学习HTTPS协议 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 目录 一:HTTPS是什么二:HTTPS的工作过程三:对称加密四:非对称加密五:中间人攻击1…

JAVA内存模型与JVM内存结构

注意区分Java内存模型&#xff08;Java Memory Model&#xff0c;简称JMM&#xff09;与Jvm内存结构&#xff0c;前者与多线程相关&#xff0c;后者与JVM内部存储相关。本文会对两者进行简单介绍。 一、JAVA内存模型(JMM) 1. 概念 说来话长&#xff0c;由于在不同硬件厂商和…

详解动态规划(算法村第十九关青铜挑战)

不同路径 62. 不同路径 - 力扣&#xff08;LeetCode&#xff09; 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finis…

重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?

大家好我是苏麟 , 今天开始又一个专栏开始了(又一个坑 哈哈) . 重载&#xff08;Overload&#xff09;和重写&#xff08;Override&#xff09;的区别。重载的方法能否根据返回类型进行区分&#xff1f; 方法的重载和重写都是实现多态的方式&#xff0c;区别在于前者实现的是编…

pyqt5怎么返回错误信息给页面(警告窗口)

在软件设计中&#xff0c;我们可能会遇到对异常的处理&#xff0c;有些异常是用户需要看到的&#xff0c;比如说&#xff0c;当我们登录出错的时候&#xff0c;后端需要给我们返回响应的错误信息&#xff0c;就像下图实现的这样。 类似这种效果&#xff0c;我们该如何实现&…

C++真题列表

题目解析&#xff1a;RAM是闪存&#xff0c;只要一关机一拔电&#xff0c;就会丢失数据 题目解答&#xff1a;A 题目解析&#xff1a;TXT格式是文本文档 题目解答&#xff1a;B 题目解析&#xff1a;IP地址中每一个字节的取值范围是[0~255]&#xff0c;是不可能有256的 题目…

2024最新算法:美洲狮优化算法(Puma Optimizar Algorithm ,POA)求解23个基准函数(提供MATLAB代码)

一、美洲狮优化算法 美洲狮优化算法&#xff08;Puma Optimizar Algorithm &#xff0c;POA&#xff09;由Benyamin Abdollahzadeh等人于2024年提出&#xff0c;其灵感来自美洲狮的智慧和生活。在该算法中&#xff0c;在探索和开发的每个阶段都提出了独特而强大的机制&#xf…

TDengine 在 DISTRIBUTECH 分享输配电数据管理实践

2 月 27-29 日&#xff0c;2024 美国国际输配电电网及公共事业展&#xff08;DISTRIBUTECH International 2024&#xff09;在美国-佛罗里达州-奥兰多国家会展中心举办。作为全球领先的年度输配电行业盛会&#xff0c;也是美洲地区首屈一指的专业展览会&#xff0c;该展会的举办…

干货!Python获取字典元素

1.访问字典中的元素 第一种方式&#xff1a;通过key访问 dict1 {"name":"中国医生", "author":"刘伟强", "person":"张涵予"} print(dict1["author"]) # 刘伟强 # print(dict1["price"…

八. 实战:CUDA-BEVFusion部署分析-分析BEVFusion中各个ONNX

目录 前言0. 简述1. camera.backbone.onnx(fp16)2. camera.backbone.onnx(int8)3. camera.vtransform.onnx(fp16)4. fuser.onnx(fp16)5. fuser.onnx(int8)6. lidar.backbone.xyz.onnx7. head.bbox.onnx(fp16)总结下载链接参考 前言 自动驾驶之心推出的《CUDA与TensorRT部署实战…

ArrayList集合源码分析

ArrayList集合源码分析 文章目录 ArrayList集合源码分析一、字段分析二、构造方法分析三、方法分析四、总结 内容如有错误或者其他需要注意的知识点&#xff0c;欢迎指正或者探讨补充&#xff0c;共同进步。 一、字段分析 //默认初始化容量。这里和Vector一样&#xff0c;只是…