01-Maven基础-简介安装、基本使用(命令)、IDEA配置、(写jar,刷新自动下载)、依赖管理
文章目录
- 0、Maven
- 1、Maven 简介
- 2、Maven 安装配置
- 安装配置步骤
- 3、Maven 基本使用
- Maven 常用命令
- Maven 生命周期
- IDEA 配置 Maven
- Maven 坐标详解
- IDEA 创建 Maven 项目
- IDEA 导入 Maven 项目
- 配置 Maven-Helper 插件 (非常实用的小插件)
- 依赖管理
- 使用坐标导入 jar 包
- 依赖范围
0、Maven



1、Maven 简介

http://maven.apache.org/
所有3.0.4以上版本下载地址: https://archive.apache.org/dist/maven/maven-3/
注意:binaries 目录下才是 可执行文件, source是源代码不需要下载
导入的jar包其实也可以看成一个写好的小项目 让jar项目和我们的项目相互依赖起来,就可以互通了

中央仓库: https://repo1.maven.org/maven2/
2、Maven 安装配置


Version:3.8.1 就是说兼容 3.8.1及其之前的版本,装个3.6.1也没啥问题
所有3.0.4以上版本下载地址: https://archive.apache.org/dist/maven/maven-3/
注意:binaries 目录下才是 可执行文件, source是源代码不需要下载
安装配置步骤
-
- 下载解压到想安装的目录

- 下载解压到想安装的目录

-
2. 配置环境变量
新建系统环境变量:MAVEN_HOME值为maven安装根目录:C:\Program Files\maven\apache-maven-3.6.1

再将bin目录配置到系统环境变量的path里面
%MAVEN_HOME%\bin

写完后一路点击确定验证是否配置成功
cmd里输入:mvn -version
出现如下信息,证明配置成功

-
3. 配置本地仓库
修改 conf/settings.xml 中的 <localRepository> 为一个指定目录


注意,本地仓库千万不要在 C:\Program Files\目录下,权限太高,后面命令行和idea会没有权限在里面创建目录(报错:Failed to create parent directories for tracking file)
<localRepository>C:\software\maven\apache-maven-3.6.1\mvn_resp</localRepository>
(如果保存时提示没有权限(一般安装在C盘Program目录下会有这个烦恼)则先将文件复制到桌面,在桌面修改好后再复制回去)
一般都习惯于在maven安转根目录下,新建一个文件夹,作为本地仓库所有jar包位置。但是如果你maven装在C:\Program Files\就不能这么干了

只能另外创建类似目录

-
4. 配置阿里云私服
修改 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>
同样保存不了的话,先将settings.xml复制到桌面,修改并保存好后再覆盖回去
3、Maven 基本使用
Maven 常用命令
先用一个现成的小项目,用命令行试试这些命令,以深入理解每个命令的作用
链接:https://pan.baidu.com/s/1bo2cK1hnt53CIqr239-aUA
提取码:rfyh
在项目的pom.xml所在目录下打开cmd

先看看本地仓库,啥也没有

-
执行编译命令:
mvn compile
第一次编译先会去阿里云私服下载编译工具带本地创仓库目录下,mvn_resp

第二次编译就不会了。
编译完成后,项目目录下会多出一个target目录,里面是整个项目所有编译好的结果 -
执行清理命令:
mvn clean
同样第一次执行会先下载对应的工具包。然后删除所有编译好的结果(删除target目录)

-
执行打包命令:
mvn package
(第一次执行也会先下载对呀工具包)

重新生产target目录,并将打好的包放在里面 (java项目打jar包,web项目打war包) -
执行测试命令:
mvn test
会自动执行src/test目录下的java代码

-
执行安装命令:
mvn install
会将当前项目打成jar包放到本地仓库下

- compile :编译
- clean:清理
- test:测试
- package:打包
- install:安装
Maven 生命周期

- default 构建生命周期

IDEA 配置 Maven

点maven home path 最右边 … 选择自己安装maven的根目录
勾选Override 选择自己安装maven的conf/settings.xml配置文件
(第三个本地仓库会自动识别出来的)

Maven 坐标详解

IDEA 创建 Maven 项目


若改骨架下没有自己想要的目录,可以自行创建,如:resources



quickstart自动帮你创建好了hello word!

IDEA 导入 Maven 项目

- 先将项目复制到工作目录下:

- IDEA maven面板里一件导入


现在只想maven命令就非常方便了,再也不用命令行手敲了

配置 Maven-Helper 插件 (非常实用的小插件)


idea连不上网,可能需要开梯子。
此插件可以更方便地执行maven命令,甚至可以Debug maven

依赖管理
使用坐标导入 jar 包
在maven-demo的pom.xml下演示

- 方式1:手写

注意:第一次写某种jar包是没有代码提示的,得百度好坐标应该咋写,然后,手动刷新,让maven去下载jar包到本地仓库,然后以后写就都会有代码提示了
- 方式2:搜索(本地仓库已经有的) (也还不错)

新版本是自动帮你生成代码了。或者就是已经有依赖,再用就不好使了

- 配置写完后自动生效 不用手动点击刷新按钮

依赖范围


编译环境就是main目录下的代码
测试环境就是test目录下的代码
注意:JDK17 得配置好编译版本 (否则执行报错)
<properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target></properties>

运行时无效就是说:将来项目打包后,不会将对应的jar包复制过去。(打好的包内无对应jar包)
不配置依赖范围,scope,默认就是compile,所有环境都有效。大部分情况都采用默认,直接都有效
相关文章:
01-Maven基础-简介安装、基本使用(命令)、IDEA配置、(写jar,刷新自动下载)、依赖管理
文章目录0、Maven1、Maven 简介2、Maven 安装配置安装配置步骤3、Maven 基本使用Maven 常用命令Maven 生命周期IDEA 配置 MavenMaven 坐标详解IDEA 创建 Maven 项目IDEA 导入 Maven 项目配置 Maven-Helper 插件 (非常实用的小插件)依赖管理使用坐标导入 jar 包依赖范围0、Maven…...
一、前端稳定性规约该如何制定
前言 稳定性是数学或工程上的用语,判别一系统在有界的输入是否也产生有界的输出。若是,称系统为稳定;若否,则称系统为不稳定。 前端稳定性的体系建设大约可以分为了发布前,发布后,以及事故解决后三个阶段…...
Docker(三)Docker网络
目录1 结论知识2 link3 自定义网络1 结论知识 每一个容器启动时都会被分配一个ip地址;宿主机可以ping通任何一个docker容器;启动docker之后,宿主机默认网卡docker0,启动容器在宿主机注册网卡,使用的evth-pair技术&…...
Js高级API
Decorator装饰器 针对属性 / 方法的装饰器 // decorator 外部可以包装一个函数,函数可以带参数function Decorator (type) {/*** 这里是真正的decorator* description: 装饰的对象的描述对象* target:装饰的属性所述类的原型,不是实例后的类。如果装饰…...
团队:在人身上,你到底愿意花多大精力?
你好,我是叶芊。 今天我们讨论怎么带团队这个话题,哎先别急着走,你可能跟很多人一样,觉得带团队离我还太远,或者觉得我才不要做管理,我要一路技术走到底,但是你知道吗?带团队做事&am…...
Linux-Poolkit提权
Linux-Poolkit提权 漏洞复现- Linux Polkit 权限提升漏洞(CVE-2021-4034) 0x00 前言 polkit是一个授权管理器,其系统架构由授权和身份验证代理组成,pkexec是其中polkit的其中一个工具,他的作用有点类似于sudo&#x…...
【React全家桶】React Hooks
React Hookshooks介绍useState(保存组件状态)useEffect()useCallback(记忆函数)useMemo() 记忆组件useRef(保存引用值)useReducer()useContext(减少组件层级)自定义hookshooks介绍 在react类组件(class)写法中,有setState和生命周期对状态进…...
CLIP论文阅读
Learning Transferable Visual Models From Natural Language Supervision 利用自然语言的监督信号学习可迁移的视觉模型 概述 迁移学习方式就是先在一个较大规模的数据集如ImageNet上预训练,然后在具体的下游任务上再进行微调。这里的预训练是基于有监督训练的&am…...
华为OD机试真题Python实现【身高排序】真题+解题思路+代码(20222023)
身高排序 题目 小明今年升学到了小学一年级, 来到新班级后,发现其他小朋友身高参差不齐, 然后就想基于各小朋友和自己的身高差,对他们进行排序, 请帮他实现排序 🔥🔥🔥🔥🔥👉👉👉👉👉👉 华为OD机试(Python)真题目录汇总 输入 第一行为正整数H…...
Spring Cache的使用--快速上手篇
系列文章目录 分页查询–Java项目实战篇 全局异常处理–Java实战项目篇 完善登录功能–过滤器的使用 更多该系列文章请查看我的主页哦 文章目录系列文章目录前言一、Spring Cache介绍二、Spring Cache的使用1. 导入依赖2. 配置信息3. 在启动类上添加注解4. 添加注解4.1 CacheP…...
(三十八)MySQL是如何支持4种事务隔离级别的?Spring事务注解是如何设置的?
上次我们讲完了SQL标准下的4种事务隔离级别,平时比较多用的就是RC和RR两种级别,那么在MySQL中也是支持那4种隔离级别的,基本的语义都是差不多的 但是要注意的一点是,MySQL默认设置的事务隔离级别,都是RR级别的&#x…...
【博学谷学习记录】大数据课程-学习第八周总结
Hadoop初体验 使用HDFS 1.从Linux本地上传一个文本文件到hdfs的/目录下 #在/export/data/目录中创建a.txt文件,并写入数据 cd /export/data/ touch a.txt echo "hello" > a.txt #将a.txt上传到HDFS的根目录 hadoop fs -put a.txt /2.通过页面查看…...
go cobra初试
cobra开源地址 https://github.com/spf13/cobra cobra是什么 Cobra is a library for creating powerful modern CLI applications. Cobra is used in many Go projects such as Kubernetes, Hugo, and GitHub CLI to name a few. This list contains a more extensive lis…...
【react全家桶】 事件处理
文章目录03 【事件处理】1.React事件2.类式组件绑定事件3.向事件处理程序传递参数4.收集表单数据5.受控和非受控组件5.函数的柯里化03 【事件处理】 React的事件是通过onXxx属性指定事件处理函数 React 使用的是自定义事件,而不是原生的 DOM 事件 React 的事件是通过…...
RabbitMQ交换机(Exchanges)
目录 一、概念 二、临时队列 三、绑定 四、Fanout(扇出交换机) (一)介绍 (二)实战 五、Direct(直接交换机) (一)介绍 (二)实…...
2023年java初级面试题10道基础试水题
1、面向对象的特征有哪些方面?答:面向对象的特征主要有以下几个方面:1)抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节…...
烙铁使用方法
烙铁使用 烙铁是硬件工程师最经常使用的工具之一,一把性能保持良好的烙铁能帮助我们快速进行电路调试。烙铁第一次加热时采用焊锡均匀涂覆在烙铁头上,以便去除包在烙铁头上面的氧化物。在工作中我们需要根据情况选择合适的烙铁头类型,合适的温度进行操作。完成焊接后要在烙铁…...
golang日期转换、日期增减计算、时间戳转换
// 固定日期格式format : "2006-01-02 15:04:05"// 按本地时区解析日期location, _ : time.ParseInLocation(format, "2022-02-20 11:30:00", time.Local)// 增加1年,三个参数分别是:年,月,日date : location…...
Android 多种支付方式的优雅实现
场景App 的支付流程,添加多种支付方式,不同的支付方式,对应的操作不一样,有的会跳转到一个新的webview,有的会调用系统浏览器,有的会进去一个新的表单页面,等等。并且可以添加的支付方式也是不确…...
算法设计与分析期末考试复习(三)
动态规划 动态规划算法与分治法类似,其基本思想也是将待求解问题分成若干个子问题。但是经分解得到的子问题往往不是互相独立的。在用分治法求解时,有些子问题被重复计算机了许多次。 如果能够保存已解决的子问题的答案,而在需要时再找出已求…...
(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...
