DAY05_Maven

news2024/11/23 19:33:00

目录

  • 1 Maven
    • 1.1 Maven简介
  • 2 Maven安装配置
    • 2.1 下载
    • 2.2 配置maven的环境变量
    • 2.3 MavenSetting.xml文件配置
    • 2.4 检测
  • 3 Maven基本使用
    • 3.1 Maven常用命令
    • 3.2 Maven生命周期
      • 3.2.1 default 构建生命周期
  • 4 IDEA配置Maven
    • 4.1 IDEA配置 Maven 环境
    • 4.2 Maven 坐标详解
    • 4.3 IDEA 创建 Maven 项目
    • 4.4 IDEA 导入 Maven 项目
    • 4.5 配置 Maven-Helper 插件
  • 5 依赖管理
    • 5.1 使用坐标导入 jar 包
    • 5.2 使用坐标导入 jar 包 – 快捷方式
    • 5.3 使用坐标导入 jar 包 – 自动导入
    • 5.2 依赖范围

1 Maven

  • Maven是专门用于管理和构建Java项目的工具,它的主要功能有:
    • 提供了一套标准化的项目结构
    • 提供了一套标准化的构建流程(编译,测试,打包,发布……)
    • 提供了一套依赖管理机制
  • 标准化的项目结构
    • Maven提供了一套标准化的项目结构,所有IDE使用Maven构建的项目结构完全一样,所有IDE创建的Maven项目可以通用
      在这里插入图片描述
  • 标准化的构建流程
    • Maven提供了一套简单的命令来完成项目构建
      在这里插入图片描述
  • 依赖管理
    • 依赖管理其实就是管理你项目所依赖的第三方资源 (jar包、插件…)
      • Maven 使用标准的坐标配置来管理各种依赖
      • 只需要简单的配置就可以完成依赖管理
    • 之前使用jar包流程:
      • 官网下载jar包
      • 复制jar包到项目
      • 将jar包加入工作环境
        在这里插入图片描述

1.1 Maven简介

  • 是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档
  • 官网:http://maven.apache.org/
  • Maven 模型
    • 项目对象模型 (Project Object Model)
    • 依赖管理模型(Dependency)
    • 插件(Plugin)
      在这里插入图片描述
      Maven仓库分类
      在这里插入图片描述
  • 本地仓库
    • 自己计算机上的一个目录
  • 中央仓库
    • 由Maven团队维护的全球唯一的仓库
      • 地址:https://repo1.maven.org/maven2/
  • 远程仓库(私服)
    • 一般由公司团队搭建的私有仓库
  • 当项目中使用坐标引入对应依赖jar包后,首先会查找本地仓库中是否有对应的jar包:
    • 如果有,则在项目直接引用;
    • 如果没有,则去中央仓库中下载对应的jar包到本地仓库。
  • 还可以搭建远程仓库,将来jar包的查找顺序则变为:
    • 本地仓库 -> 远程仓库 -> 中央仓库

2 Maven安装配置

2.1 下载

  • 在主页面点击Download

在这里插入图片描述

  • 点击archives
    • 最好不要下载使用新版本,我使用的是maven-3.6.3,我们点击页面下方的archives,能进入maven历史版本页面

在这里插入图片描述

  • 点击要下载的版本

在这里插入图片描述

  • 点击binaries

在这里插入图片描述

  • 下载所需要的压缩包

在这里插入图片描述

  • 解压后的目录

在这里插入图片描述

2.2 配置maven的环境变量

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3 MavenSetting.xml文件配置

  • 打开setting.xml文件

在这里插入图片描述

  • 配置本地Maven仓库
    • 大约在55行位置(记得在上面的注释内容下面添加这行代码)加入这一行代码。
    • 这行代码的作用:本地maven仓库所在的位置,也可以不添加的,它的默认位置是在c盘,
    • 这个仓库存放项目需要的jar包,非常占用内存,所以建议不要放在c盘,而是存放在自定义的位置。
<localRepository>D:/Develop/Maven/localRepo</localRepository>

在这里插入图片描述

  • 添加国内镜像
<mirror>
       <id>alimaven</id>
       <name>aliyun maven</name>
       <url>http://maven.aliyun.com/nexus/content/groups/public/ </url>
       <mirrorOf>central</mirrorOf>
</mirror>

在这里插入图片描述

  • 设置JDK版本
<profile>
    <id>jdk-1.8</id> 
     <activation>
       <activeByDefault>true</activeByDefault> 
       <jdk>1.8</jdk> 
     </activation> 
     <properties> 
       <maven.compiler.source>1.8</maven.compiler.source> 
       <maven.compiler.target>1.8</maven.compiler.target> 
       <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
    </properties>
</profile>

在这里插入图片描述

2.4 检测

  • 在黑窗口中输入:
    • mvn -v
  • 出现以下内容即为成功
    在这里插入图片描述

3 Maven基本使用

3.1 Maven常用命令

命令说明
compile编译
clean清理
test测试
package打包
install安装

3.2 Maven生命周期

  • Maven 构建项目生命周期描述的是一次构建过程经历经历了多少个事件
  • Maven 对项目构建的生命周期划分为3套
    • clean:清理工作
    • default:核心工作,例如编译,测试,打包,安装等
    • site:产生报告,发布站点等
      在这里插入图片描述

3.2.1 default 构建生命周期

周期说明
validate(校验)校验项目是否正确并且所有必要的信息可以完成项目的构建过程。
initialize(初始化)初始化构建状态,比如设置属性值。
generate-sources(生成源代码)生成包含在编译阶段中的任何源代码。
process-sources(处理源代码)处理源代码,比如说,过滤任意值。
generate-resources(生成资源文件)生成将会包含在项目包中的资源文件。
process-resources (处理资源文件)复制和处理资源到目标目录,为打包阶段最好准备。
compile(编译)编译项目的源代码。
process-classes(处理类文件)处理编译生成的文件,比如说对Java class文件做字节码改善优化。
generate-test-sources(生成测试源代码)生成包含在编译阶段中的任何测试源代码。
process-test-sources(处理测试源代码)处理测试源代码,比如说,过滤任意值。
generate-test-resources(生成测试资源文件)为测试创建资源文件。
process-test-resources(处理测试资源文件)复制和处理测试资源到目标目录。
test-compile(编译测试源码)编译测试源代码到测试目标目录.
process-test-classes(处理测试类文件)处理测试源码编译生成的文件。
test(测试)使用合适的单元测试框架运行测试(Juint是其中之一)。
prepare-package(准备打包)在实际打包之前,执行任何的必要的操作为打包做准备。
package(打包)将编译后的代码打包成可分发格式的文件,比如JAR、WAR或者EAR文件。
pre-integration-test(集成测试前)在执行集成测试前进行必要的动作。比如说,搭建需要的环境。
integration-test(集成测试)处理和部署项目到可以运行集成测试环境中。
post-integration-test(集成测试后)在执行集成测试完成后进行必要的动作。比如说,清理集成测试环境。
verify (验证)运行任意的检查来验证项目包有效且达到质量标准。
install(安装)安装项目包到本地仓库,这样项目包可以用作其他本地项目的依赖。
deploy(部署)将最终的项目包复制到远程仓库中与其他开发者和项目共享。

4 IDEA配置Maven

4.1 IDEA配置 Maven 环境

在这里插入图片描述

4.2 Maven 坐标详解

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

4.3 IDEA 创建 Maven 项目

在这里插入图片描述

4.4 IDEA 导入 Maven 项目

选择右侧Maven面板,点击 + 号
在这里插入图片描述
选中对应项目的pom.xml文件,双击即可
在这里插入图片描述
如果没有Maven面板,选择 View -> Appearance -> Tool Window Bars
在这里插入图片描述

4.5 配置 Maven-Helper 插件

在这里插入图片描述
在这里插入图片描述

此插件可以更好的使用Maven相关命令
在项目上右键即可
在这里插入图片描述

5 依赖管理

5.1 使用坐标导入 jar 包

  • 在 pom.xml 中编写 < dependencies > 标签
  • 在 < dependencies > 标签中 使用 < dependency > 引入坐标
  • 定义坐标的 groupId,artifactId,version
  • 点击刷新按钮,使坐标生效
    在这里插入图片描述
    在这里插入图片描述

5.2 使用坐标导入 jar 包 – 快捷方式

  • 在 pom.xml 中 按 alt + insert,选择 Dependency
  • 在弹出的面板中搜索对应坐标,然后双击选中对应坐标
  • 点击刷新按钮,使坐标生效
    在这里插入图片描述
    在这里插入图片描述

5.3 使用坐标导入 jar 包 – 自动导入

  • 选择 IDEA中 File --> Settings
  • 在弹出的面板中找到 Build Tools
  • 选择 Any changes,点击 ok 即可生效
    在这里插入图片描述

5.2 依赖范围

  • 通过设置坐标的依赖范围(scope),可以设置 对应jar包的作用范围:编译环境、测试环境、运行环境
    在这里插入图片描述
依赖范围编译classpath测试classpath运行classpath例子
compileYYYlogback
test-Y-Junit
providedYY-servlet-api
runtime-YYjdbc驱动
compileYY-存储在本地的jar包
system引入DependencyManagement
  • < scope >默认值:compile

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

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

相关文章

优漫动游:ui设计面试问题及答案?

ui设计面试问题及答案&#xff1f;面试是每个大学生都会遇到的一种求职形式&#xff0c;尤其是对于一些不太了解面试的同学来说。那么面试中的问题究竟有哪些呢&#xff1f;这些问题到底有没有标准答案呢&#xff1f;本文优漫小编就来给大家分享一下关于UI设计面试中的几个问题…

Spring事务简介案例

文章目录 1.Spring事务简介2.案例3.步骤3.1 添加注解Transactional3.2 定义事务管理器3.3 EnableTransactionManagement开启事务驱动 1.Spring事务简介 可以在业务层上开的一种事务&#xff0c;开在业务层上的好处是&#xff0c;可以将业务层中方法里面所包含的数据层操作放到…

【学习心得】Linux下的Python虚拟环境搭建

问题描述&#xff1a;本文解决在Linux系统&#xff08;Ubuntu举例&#xff09;中如何实现Python的多版本以及搭建Python虚拟环境。 一、Linux系统中实现Python多版本 1、第一步&#xff1a;在官网中找到对应Python版本的tar压缩包的下载链接。 在历史版本中找到你想要的Pytho…

实验篇(7.2) 03. 部署物理实验环境(下)❀ 远程访问

【简介】考虑到有很多人初次接触FortiGate防火墙硬件&#xff0c;因此在讲解部署物理实验环境的时候&#xff0c;防火墙的初次登录内容介绍的比较多&#xff0c;以致于需要将文章分下、下二篇。下篇我们重点介绍服务器的配置及部署。 防火墙的接口规划 在部署服务器之前&#x…

基于MCGS嵌入版组态软件的船舶绝缘在线监测装置

关注acrelzxz&#xff0c;了解更多详细内容 摘要:针对船舶供电系统电缆的绝缘状态问题&#xff0c;设计了一款电缆绝缘在线监测装置。装置采用低频交流注入法&#xff0c;在IT系统的中心点注入低频的交流信号&#xff0c;通过取样电路和A/D量化检测注入信号在电路中的响应&…

加密与解密 调试篇 动态调试技术 (二)-常见断点

目录 常见的断点 1.INT 3 断点 检测 绕过 2.硬件断点 原理 我们给出硬件中断的例子 删除硬件断点 3.内存断点 原理 例子 删除 区别 总结 4.内存访问一次性断点 5.消息断点 例子 删除 6.条件断点 &#xff08;1&#xff09;按寄存器条件中断 &#xff08;2&…

渠道投放数据建设

广告投放渠道识别方式 1、渠道包&#xff1a;每个渠道分配不同的渠道包&#xff0c;用户下载APP之后根据他下载的是哪个渠道包来识别渠道来源&#xff0c;比较常见于应用商店的投放。但是需要注意渠道包可能会导致作弊情况&#xff0c;例如用虚拟机下载渠道包来模拟下载数据等…

Linux介绍和vm17pro安装 和Centos以及vm简单操作

Linux 介绍 概述 linux 怎么读&#xff0c; 不下10 种linux 是一个开源、免费的操作系统&#xff0c;其稳定性、安全性、处理多并发已经得到业界的认可&#xff0c;目前很多企业级的项目(c/c/php/python/java/go)都会部署到Linux/unix 系统上。常见的操作系统(windows、IOS、…

ChatGPT工作提效之使用百度地图在首都为六一儿童节献爱心(多边形覆盖物、文本标注、自动获取经纬度、爱心函数)

ChatGPT工作提效系列 ChatGPT工作提效之初探路径独孤九剑遇强则强ChatGPT工作提效之在程序开发中的巧劲和指令(创建MySQL语句、PHP语句、Javascript用法、python的交互)ChatGPT工作提效之生成开发需求和报价单并转为Excel格式ChatGPT工作提效之小鹅通二次开发批量API对接解决方…

浏览器跨域的配置

目录 1、前言 2、同源策略 3、跨源数据存储访问 4、浏览器跨域设置 4.1 版本号&#xff08;49.x.x.x.x&#xff09;之前的跨域设置 4.2 版本号&#xff08;49.x.x.x.x&#xff09;之后的跨域设置 5、批处理跨域设置 5.1 windows 操作系统。 5.2 Mac 操作系统 1、前言 …

STL库(1)

STL库&#xff08;1&#xff09; vectorvector介绍vector使用初始化元素访问内存扩容插入删除 listlist介绍初始化&#xff0c;元素访问插入删除元素 vector和list区别 vector vector介绍 vector是可以改变大小的数组的容器。其内存结构和数组一样&#xff0c;使用连续的存储…

我是如何精通软件工程的

软件工程是一个庞大且不断演化的领域&#xff0c;涉及许多创新。虽然如此&#xff0c;大多数技术 —— 如果不是全部 —— 在软件工程中往往最终汇聚为几个基本原则。工程师更好地掌握软件工程的方法是熟悉软件工程的基础知识&#xff0c;而不是那些不断变化的框架、语言或平台…

2023年Web服务器基准测试:NodeJS vs Java vs Rust vs Go

现在是2023年&#xff0c;是时候进行一次新的Web服务器基准测试了&#xff01; 结果对我来说有些出乎意料&#xff01; 一个Web服务器必须能够处理大量请求&#xff0c;尽管瓶颈在于IO。这次我决定比较最流行的、速度极快的现代框架的性能。 以下是有关实现细节的许多详细信息…

安装 vue-element-admin,安装报错解决

安装 vue-element-admin 克隆项目 git clone https://github.com/PanJiaChen/vue-element-admin.git //(英文的)git clone -b i18n https://github.com/PanJiaChen/vue-element-admin.git // 这个克隆出来是有中英文切换的进入项目目录 cd vue-element-admin建议不要用 cnpm…

chatgpt赋能python:Python交互编程入门指南

Python交互编程入门指南 Python是一种高级编程语言&#xff0c;适合初学者和专业人士使用。Python的互动式编程方式为开发人员提供了快速反馈的环境&#xff0c;从而实现更便捷和高效的开发过程。在本文中&#xff0c;我们将介绍Python的交互编程&#xff0c;为您提供Python编…

达梦数据库运维常用归档、sql日志、dexp与dimp操作

目录 一、归档文件配置... 3 二、sql⽇志的开启和关闭以及基本的操作... 3 三、执行计划... 5 四、工具和命令行数据库物理、逻辑备份&#xff0c;还原... 6 1、工具物理备份... 6 2、命令行联机备份... 8 3、命令行脱机备份... 8 4、工具物理还原... 8 5、命令行DMRM…

C++之动态分配new 删除delete 初始化memset

文章目录 1.动态分配 new1.引言2.new的实现 2.删除 delete3.初始化 memset 1.动态分配 new 1.引言 用new创建数组的优势&#xff1a;由于new创建的对象是在运行时确立的&#xff0c;所以有着具体情况具体分析的优点&#xff0c;那么什么叫做具体情况具体分析呢&#xff1f; 举…

linux led 驱动

前言 今天是儿童节&#xff0c;挣个奖牌给小孩玩玩。 在 linux 驱动大家庭中&#xff0c;LED 驱动算是个儿童&#xff0c;今天就写写他吧。正好之前写过他的婴儿时期《i.MX6ULL 裸机点亮 LED》&#xff0c;记得那时候他还穿着开裆裤呢&#xff0c;裸鸡嘛。 ioremap() 裸机程…

某点资讯Signature纯算逆向

本篇主要是介绍一些工作的运用熟练性&#xff0c;以及跟踪堆栈去看是否做一些其他操作等&#xff1a; 抓包: signature 为加密值&#xff1b; 先上trace下堆栈及加密 我们把结果base64下&#xff0c;看结果是否一致&#xff0c;来判断base64是否魔改 验证base64为标准&…

新规之下产业园区如何合理收费水电费用

一、政策背景 2018年3月30日&#xff0c;国家发改委发布《国家发展改革委关于降低一般工商业电价有关事项的通知》。明确提出进一步规范和降低电网环节收费&#xff0c;一是提高两部制电价的灵活性&#xff1b;二是全面清理规范电网企业在输配电价之外的收费项目&#xff0c;重…