Java Web 学习笔记(三) —— Maven 基础

news2024/11/28 16:35:41

目录

  • 1 Maven 概述
  • 2 Maven 安装配置
  • 3 Maven 基本使用
    • 3.1 Maven 常用命令
    • 3.2 Maven 生命周期
  • 4 IDEA 配置 Maven
    • 4.1 IDEA 配置 Maven 环境
    • 4.2 IDEA 创建 Maven 项目
  • 5 依赖管理
    • 5.1 导入依赖
    • 5.2 依赖范围

1 Maven 概述


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

Maven 模型:

在这里插入图片描述

关于仓库:

在这里插入图片描述

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

  • 提供了一套标准化的项目结构
  • 提供了一套标准化的构建流程(编译,测试,打包,发布…)
  • 提供了一套依赖管理机制
  1. Maven 提供了一套标准化的项目结构

在这里插入图片描述

不同 IDE 之间,项目结构不一样,不通用;Maven 提供了一套标准化的项目结构,所有 IDE 使用 Maven 构建的项目结构完全一样,所有 IDE 创建的 Maven 项目可以通用

在这里插入图片描述
2. Maven 提供了一套标准化的构建流程

标准化的构建流程

在这里插入图片描述

Maven 提供了一套简单的命令来完成项目构建

  1. Maven 提供了一套依赖管理机制

依赖管理其实就是管理你项目所依赖的第三方资源 (jar 包、插件… )

以 jar 包为例,之前我们导入 jar 包:

在这里插入图片描述

而使用 Maven

在这里插入图片描述

Maven 使用标准的坐标配置来管理各种依赖,只需要简单的配置就可以完成依赖管理

2 Maven 安装配置


  1. 解压 apache-maven-3.6.1.rar 即安装完成

  2. 配置环境变量 MAVEN_HOME 为安装路径的 bin 目录

在 cmd 窗口输入命令:mvn -version ,验证配置成功与否

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

在这里插入图片描述

  1. 配置阿里云私服:修改 conf/settings.xml 中的 <mirrors> 标签,为其添加如下子标签:
 <mirror>
	<id>alimaven</id>
	<name>aliyun maven</name>
	<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
	<mirrorOf>central</mirrorOf>
</mirror>

3 Maven 基本使用

3.1 Maven 常用命令


首先进入 Maven 项目中(pom.xml所在的路径),打开 cmd 命令行

  • mvn compile :编译
    • 生成 target文件夹,存放着字节码文件
  • mvn clean :清理
    • 删除 target文件夹
  • mvn test :测试
    • 运行 test 文件下的测试代码
  • mvn package :打包
    • 将编译生成的字节码文件打成 jar 包
  • mvn install :安装
    • 将当前项目安装到本地仓库

3.2 Maven 生命周期


Maven 构建项目生命周期描述的是一次构建过程经历经历了多少个事件

Maven 对项目构建的生命周期划分为 3 套

  • clean :清理工作
  • default :核心工作,例如编译,测试,打包,安装等
  • site :产生报告,发布站点等

在这里插入图片描述

同一生命周期内,执行后边的命令,前边的所有命令会自动执行

4 IDEA 配置 Maven

4.1 IDEA 配置 Maven 环境


  1. 选择 IDEA 中 File --> Settings

  2. 搜索 maven

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

在这里插入图片描述

4.2 IDEA 创建 Maven 项目


Maven 坐标详解

坐标:

  • Maven 中的坐标是资源的唯一标识
  • 使用坐标来定义项目或引入项目中需要的依赖

Maven 坐标主要组成:

  • groupId :定义当前 Maven 项目隶属组织名称(通常是域名反写,例如: com.baidu )
  • artifactId :定义当前 Maven 项目名称(通常是模块名称,例如 order-servicegoods-service
  • version :定义当前项目版本号

例如:

在这里插入图片描述

IDEA 创建 Maven 项目

  1. 创建 模块,选择 Maven ,点击 Next
  2. 填写模块名称,坐标信息,点击 finish ,创建完成
  3. 编写 HelloWorld ,并运行

IDEA 导入 Maven 项目

  1. 选择右侧 Maven 面板,点击 + 号
  2. 选中对应项目的 pom.xml 文件,双击即可
  3. 如果没有 Maven 面板,选择 View —> Appearance —> Tool Window Bars

在这里插入图片描述

为了更方便地使用 Maven ,配置 Maven-Helper 插件

在这里插入图片描述
安装完成后需要重启 IDEA,才可以生效。

这样,Maven 项目的右键选项卡就会如下图所示

在这里插入图片描述

5 依赖管理

5.1 导入依赖


导入依赖的两种方式

  1. 例如是 mysql ,可以搜索 mysql maven ,一般网页第一个或第二个就是了,可以直接复制自己想要的版本依赖

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  1. 如果要导入的依赖,本地仓库是有的,我们可以 alt + insert,选择add dependency…

在这里插入图片描述

搜索并选择需要的依赖直接导入

在这里插入图片描述

对依赖做出修改之后,总是需要手动刷新,有点麻烦,我们可以设置成自动刷新

只需要做出如下设置:

在这里插入图片描述

5.2 依赖范围


通过设置坐标的依赖范围 (scope) ,可以设置 对应 jar 包的作用范围:编译环境、测试环境、运行环境

在这里插入图片描述

<scope> 的默认值: compile

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

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

相关文章

力控关节性能指标

力控关节是一种用于机器人的关节&#xff0c;具有强大的力控制能力&#xff0c;通常用于执行需要精确力量控制的任务&#xff0c;例如装配、协作操作、力导引操作等。 电机的伺服驱动器通常包括三种控制环——位置环、速度环和电流环。虽然每种控制环的目的是控制电机性能的不同…

应用在智能空调中的数字温度传感芯片

智能空调是具有自动调节功能的空调。智能空调系统能根据外界气候条件&#xff0c;按照预先设定的指标对温度、湿度、空气清洁度传感器所传来的信号进行分析、判断、及时自动打开制冷、加热、去湿及空气净化等功能的空调。适合放在卧室&#xff0c;客厅等地方。 在中央控制系统…

【网络奇遇记】那年我与计算机网络的初相识

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;《网络奇遇记》 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 一. 信息时代的计算机网络二. 计算网络的定义和分类三. 计算机网络的特点四. 计算机网路在信息时代的应用五…

RFID管理方案有效提升电力物资管理效率与资产安全

在电力行业&#xff0c;电力资产的管理是一项重要的任务&#xff0c;为了实现对电力资产的精细化管理、入出库监控管理、盘点管理和巡查管理等&#xff0c;电力公司多采用电力资产RFID管理系统&#xff0c;该系统能够实时监控出入库过程&#xff0c;有效防止出入库错误&#xf…

【ElasticSearch系列-05】SpringBoot整合elasticSearch

ElasticSearch系列整体栏目 内容链接地址【一】ElasticSearch下载和安装https://zhenghuisheng.blog.csdn.net/article/details/129260827【二】ElasticSearch概念和基本操作https://blog.csdn.net/zhenghuishengq/article/details/134121631【三】ElasticSearch的高级查询Quer…

从科幻走向现实,LLM Agent 做到哪一步了?

LLM 洪流滚滚&#xff0c;AI 浪潮席卷全球&#xff0c;在这不断冲击行业认知的一年中&#xff0c;Agent 以冉冉新星之态引起开发者侧目。OpenAI 科学家 Andrej Karpathy 曾言“OpenAI 在大模型领域快人一步&#xff0c;但在 Agent 领域&#xff0c;却是和大家处在同一起跑线上。…

ESP-07S烧写固件记录

一&#xff0c;固件版本。 下面是官方默认AT指令版本&#xff0c;ESP-07S 的flash大小是4MB。 AT固件汇总 | 安信可科技 (ai-thinker.com) 二&#xff0c;烧录工具。 开发工具清单 | 安信可科技 (ai-thinker.com) 三&#xff0c;下载工具及连线。 使用USB转串口工具。 四&am…

如何将立创EDA中的元器件封装快速导入到AD软件中去

在使用AD软件画PCB的时候&#xff0c;最费时间的就是找元器件的封装。有的元器件如果库里面没有封装的话还得自己手动画&#xff0c;这样会浪费很多时间。 由于立创EDA里面的元器件比较全&#xff0c;而且好多器件都带有封装。那么就可以直接将立创EDA中元器件的封装直接导入到…

项目管理工具有哪些?项目管理必备的6款软件推荐!

在现代商业环境中&#xff0c;项目管理已经成为一个不可或缺的工作流程。有效的项目管理可以提高团队的协作效率&#xff0c;促进任务分配和沟通&#xff0c;并确保项目按时交付。然而&#xff0c;随着项目越来越复杂和多样化&#xff0c;需要使用适合的软件工具来支持项目管理…

并发编程(线程基础)

线程和进程的区别并发与并行的区别线程创建方式runnable和callable的区别run()和start()的区别线程包括哪些状态&#xff0c;状态之间如何变化新建三个线程&#xff0c;如何按顺序执行notify()和notifyAll()的区别wait和sleep方法的区别如何停止一个正在运行的线程 一、线程和进…

保存修改后的图形化配置文件

37.4.5 保存修改后的图形化配置文件 如果使用 V2.4 以前的底板&#xff0c;用的是 LAN8720A 这颗 PHY 芯片&#xff0c;我们在修改网络驱动的时 候我们通过图形界面使能了 LAN8720A 的驱动&#xff0c;使能以后会在.config 中存在如下代码&#xff1a; CONFIG_SMSC_PHYy 打开 d…

基于RK3568的新能源储能能量管理系统ems

新能源储能能量管理系统&#xff08;EMS&#xff09;是一种基于现代化技术的系统&#xff0c;旨在管理并优化新能源储能设备的能量使用。 该系统通过监测、调度和控制新能源储能设备来确保能源的高效利用和可持续发展。 本文将从不同的角度介绍新能源储能能量管理系统的原理、…

idea个性设置

这种灰色代码连在一起

完美处理 Android App 的 apk 输出路径与文件名

实现代码 buildTypes {// ...applicationVariants.all {variant ->variant.outputs.all {Calendar calendar Calendar.getInstance(Locale.CHINA);def buildDate String.format(Locale.CHINA, "%04d%02d%02d", calendar.get(Calendar.YEAR), calendar.get(Cale…

Telnet/ssh/Serial远程工具WindTerm

Telnet/ssh/Serial远程工具WindTerm 一、WindTerm 概述二、WindTerm 下载 一、WindTerm 概述 在远程终端工具中&#xff0c;secureCrt 和 XShell 是两款比较有名的远程工具&#xff0c;但收费。上一篇文章就介绍了一款免费软件MobaXterm&#xff0c;但菜单都是英文的&#xff0…

Doris:StreamLoad导入数据

目录 1.基本原理 2.支持数据格式 3.StreamLoad语法 3.1.请求参数 3.2.返回参数 4.StreamLoad实践 4.1.使用 curl命令 4.2.使用Java代码 Stream load 是一个同步的导入方式&#xff0c;用户通过发送 HTTP 协议发送请求将本地文件或数据流导入到 Doris 中。Stream load 主…

图片有水印怎么去?这三招轻松去除图片水印

当我们在网站找一些的图片做头像或者壁纸的时候&#xff0c;会发现一些好看的图片上会带有一些平台水印&#xff0c;这些水印影响了整张照片的美观&#xff0c;那么图片有水印怎么去呢&#xff1f;这时就需要借用图片处理工具来操作。那你们知道图片有水印怎么去吗?今天我就来…

LCR 166.珠宝的最高价值 + 动态规划 + 记忆化搜索 + 递推 + 空间优化

LCR 166. 珠宝的最高价值 - 力扣&#xff08;LeetCode&#xff09; 现有一个记作二维矩阵 frame 的珠宝架&#xff0c;其中 frame[i][j] 为该位置珠宝的价值。拿取珠宝的规则为&#xff1a; 只能从架子的左上角开始拿珠宝每次可以移动到右侧或下侧的相邻位置到达珠宝架子的右下…

匪夷所思,spring aop这么写竟然会失效!!

背景 spring 版本&#xff1a;3.2.8.RELEASEJDK版本&#xff1a;1.8本地是正常&#xff0c;线上环境是有问题的 应用从云下迁移到云上的过程中出现了一个应用部分aop 通知失效的问题&#xff0c;场景如下&#xff1a; node1 节点上的category 是失效的&#xff0c;element是正…

ubuntu 分区 方案

ubuntu 分区 方案 自动分区啥样子的&#xff1f; 手动分区 需要怎么操作&#xff1f; 注意点是啥&#xff1f; swap分区 要和 内存大小 差不多 安装ubuntu系统时硬盘分区方案 硬盘分区概述 一块硬盘最多可以分4个主分区&#xff0c;主分区之外的成为扩展分区。硬盘可以没有…