七、Maven

1_概述

Maven 是专门用于管理和构建 Java 项目的工具,它的主要功能有:
提供了一套标准化的项目结构
提供了一套标准化的构建流程(编译,测试,打包,发布……)
提供了一套依赖管理机制


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

2.标准化的构建流程
编译 → 测试 → 打包 → 发布
Maven 提供了一套简单的命令来完成项目构建

3.依赖管理
依赖管理其实就是管理你项目所依赖的第三方资源(jar 包、插件...)
Maven 使用标准的坐标配置来管理各种依赖
只需要简单的配置就可以完成依赖管理

2_简介

Maven 简介
Apache Maven 是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档
官网: http://maven.apache.org/

Maven 作用:
标准化的项目结构
标准化的构建流程
方便的依赖管理

Maven 模型:
项目对象模型 (Project Object Model)
依赖管理模型 (Dependency)
插件 (Plugin)

仓库分类:
本地仓库:自己计算机上的一个目录
中央仓库:由 Maven 团队维护的全球唯一的仓库
地址:https://repo1.maven.org/maven2/
远程仓库 (私服):一般由公司团队搭建的私有仓库

当项目中使用坐标引入对应依赖 jar 包后,首先会查找本地仓库中是否有对应的 jar 包:
如果有,则在项目直接引用;
如果没有,则去中央仓库中下载对应的 jar 包到本地仓库。

还可以搭建远程仓库,将来 jar 包的查找顺序则变为:
本地仓库 → 远程仓库 → 中央仓库

3_基本使用

Maven 基本使用
Maven 常用命令
compile:编译
clean:清理
test:测试
package:打包
install:安装


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

4_IDEA配置Maven

IDEA 配置 Maven 环境
1.选择 IDEA 中 File --> Settings
2.搜索 maven
3.设置 IDEA 使用本地安装的 Maven,并修改配置文件路径

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

<groupId>com.itheima</groupId>
<artifactId>maven-demo</artifactId>
<version>1.0-SNAPSHOT</version>

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>


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

 我也不知道为什么只能用1.8才能创建maven模块

IDEA 导入 Maven 项目
选择右侧 Maven 面板,点击 + 号
选中对应项目的 pom.xml 文件,双击即可
如果没有 Maven 面板,选择
View → Appearance → Tool Window Bars

5_依赖管理&依赖范围

添加jar包自动生效

使用坐标导入 jar 包
1.在 pom.xml 中编写 <dependencies> 标签
2.在 <dependencies> 标签中使用 <dependency>:引入坐标
3.定义坐标的 groupId,artifactId,version
4.点击刷新按钮,使坐标生效


使用坐标导入 jar 包 - 自动导入
选择 IDEA 中 File --> Settings
在弹出的面板中找到 Build Tools
选择 Any changes,点击 ok 即可生效


使用坐标导入 jar 包 - 快捷方式
在 pom.xml 中按 alt + insert,选择 Dependency
在弹出的面板中搜索对应坐标,然后双击选中对应坐标
点击刷新按钮,使坐标生效

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AIGC自我介绍笔记

AIGC&#xff08;人工智能生成内容&#xff09;项目是指利用人工智能技术&#xff08;如深度学习、生成对抗网络、大规模预训练模型等&#xff09;自动生成文本、图像、音频、视频等多模态内容的系统性工程。这类项目通过算法模型学习海量数据&#xff0c;实现内容的自动化、个…

从docker-compose快速入门Docker

不得不提容器化技术是未来的一个发展方向&#xff0c;它彻底释放了计算虚拟化的威力&#xff0c;极大提高了应用的运行效率&#xff0c;降低了云计算资源供应的成本&#xff01;使用 Docker&#xff0c;可以让应用的部署、测试和分发都变得前所未有的高效和轻松&#xff01;无论…

【BERT_Pretrain】Wikipedia_Bookcorpus数据预处理(二)

上一篇介绍了wikipedia和bookcopus数据集&#xff0c;这一篇主要讲一下如何预处理数据&#xff0c;使其可以用于BERT的Pretrain任务MLM和NSP。 MLM是类似于完形填空的任务&#xff0c;NSP是判断两个句子是否连着。因此数据预处理的方式不同。首先&#xff0c;拿到原始数据集&a…

人工智能-基础篇-14-知识库和知识图谱介绍(知识库是基石、知识图谱是增强语义理解的知识库、结构化数据和非结构化数据区分)

在人工智能&#xff08;AI&#xff09;领域&#xff0c;知识图谱&#xff08;Knowledge Graph&#xff09;和知识库&#xff08;Knowledge Base&#xff09;是两种重要的知识表示和管理技术&#xff0c;它们的核心目标是通过结构化的方式组织信息&#xff0c;从而支持智能系统的…

7月1日作业

思维导图 一、将当前的时间写入到time.txt的文件中&#xff0c;如果ctrlc退出之后&#xff0c;在再次执行支持断点续写 1.2022-04-26 19:10:20 2.2022-04-26 19:10:21 3.2022-04-26 19:10:22 //按下ctrlc停止&#xff0c;再次执行程序 4.2022-04-26 20:00:00 5.2022-04-26 20:0…

DHCP中继及动态分配

DHCP中继 在多 VLAN 网络中为什么不能直接用 DHCP&#xff1f; 比如你现在的网络是&#xff1a;PC 在 VLAN10、VLAN20 中DHCP服务器&#xff08;Router0&#xff09;在另一个网段&#xff08;比如 192.168.100.0/24&#xff09;PC 的 DHCP Discover 是广播&#xff0c;无法跨越…

ROS 概述与环境搭建

1. ROS 简介 1.1 ROS 诞生背景 机器人是一种高度复杂的系统性实现&#xff0c;机器人设计包含了机械加工、机械结构设计、硬件设计、嵌入式软件设计、上层软件设计....是各种硬件与软件集成&#xff0c;甚至可以说机器人系统是当今工业体系的集大成者。 机器人体系是相当庞大的…

mac python3.13 selenium安装使用

一、安装 # 进入虚拟环境 workon xxxx pip install selenium二、安装驱动 查询自己浏览器版本 /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --versionGoogle Chrome 138.0.7204.93下载对应的驱动&#xff0c;其他版本 sudo mv ~/Downloads/chromedr…

AI 开发平台:中小企业的创新破局点在哪里?

在浙江义乌的一个小商品加工厂里&#xff0c;老板王建国最近有点烦。订单量忽高忽低&#xff0c;原材料价格波动不定&#xff0c;他想通过数据分析提前规划生产&#xff0c;却苦于没有专业的技术团队&#xff1b;在广东东莞的一家电子配件公司&#xff0c;业务员李娜每天要处理…

.NET 8.0 Redis 教程

一、环境准备 1. 安装 Redis 服务器 Windows/macOS/Linux&#xff1a;使用 Docker 快速部署 bash docker run -d --name redis -p 6379:6379 redisLinux&#xff1a;直接安装 bash sudo apt-get install redis-server sudo systemctl start redis-server2. 创建 .NET 项目 b…

2025年游戏鼠标推荐,游戏鼠标推荐,打CSGO(罗技、雷蛇、卓威、ROG、漫步者、赛睿、达尔优)

可能很多人对于游戏鼠标的了解还是不够深&#xff0c;会有很多疑问&#xff0c;比如&#xff1a;“游戏鼠标和办公鼠标的区别”、“游戏鼠标无线好还是有线好”等等一系列的问题&#xff0c;本文将会介绍游戏鼠标领域处于领先地位的几个厂家&#xff1a;罗技鼠标、雷蛇鼠标、赛…

OpenCV CUDA模块设备层-----在 GPU上高效地执行两个uint类型值的最小值比较函数vmin2()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 OpenCV 的CUDA模块&#xff08;cudev&#xff09; 中的一个设备端内联函数&#xff0c;用于在GPU上高效地执行两个uint类型值的最小值比较。 该函…

Web3与传统网络安全模型对比:关键差异解析

随着互联网技术的飞速发展&#xff0c;Web3的概念逐渐成为人们关注的焦点。Web3代表着一个更加去中心化、安全和用户友好的网络环境。与传统的网络安全模型相比&#xff0c;Web3在多个方面展现出了其独特的优势和特点。本文将深入探讨Web3与传统网络安全模型之间的关键差异。 …

FLAN:微调语言模型是 Zero-Shot 学习者

摘要 本文探讨了一种简单的方法来提升语言模型的零样本学习能力。我们展示了指令微调——即在通过指令描述的数据集集合上对语言模型进行微调——能够显著提升模型在未见任务上的零样本表现。 我们以一个拥有1370亿参数的预训练语言模型为基础&#xff0c;在60多个通过自然语…

springboot中的事件发布和监听

事件定义 创建一个自定义事件类 UserLoginEvent&#xff0c;继承 ApplicationEvent&#xff0c;用于携带用户登录信息&#xff1a; import org.springframework.context.ApplicationEvent;public class UserLoginEvent extends ApplicationEvent { //关键点1&#xff1a;ext…

“开源双轨架构+40亿参数扩散Transformer——ComfyUI-OmniGen2本地部署教程:重塑多模态生成的效率边界!

一、简介 OmniGen2 是由北京智源研究院最新推出的一个强大、高效的开源多模态生成模型。与 OmniGen v1 不同&#xff0c;OmniGen2 具有两种不同的文本和图像模态解码路径&#xff0c;利用非共享参数和解耦的图像分词器。OmniGen2 在四个主要功能方面具有竞争力的性能&#xff…

Java的SpringAI+Deepseek大模型实战之会话记忆

文章目录 背景项目环境实现步骤第一步、定义会话存储方式方式一、定义记忆存储ChatMemory方式二、注入记忆存储ChatMemory 第二步、配置会话记忆方式一、老版本实现方式二、新版本实现 第三步、存储会话信息 异常处理1、InMemoryChatMemory 无法解析 背景 前两期【环境搭建】和…

RDS MySQL vs. Aurora MySQL:高需求工作负载的终极迁移指南

在 AWS 上&#xff0c;开发团队最常见且关键的决策之一就是选择合适的关系型数据库。通常&#xff0c;讨论会从 RDS for MySQL 这个可靠且熟悉的“老黄牛”开始。但很快&#xff0c;就会有人提到一个更强大、更云原生的选项&#xff1a;Aurora MySQL。 也许&#xff0c;就像最…

使用仓颉编程语言是一种怎样的体验?

2024年6月21日下午&#xff0c;华为终端BG软件部总裁龚体先生在华为开发者大会主题演讲《鸿蒙原生应用&#xff0c;全新出发&#xff01;》中向全球开发者介绍了华为自研仓颉编程语言&#xff0c;并发布了HarmonyOS NEXT仓颉语言开发者预览版。这是华为首次公开仓颉编程语言。 …

Qt Creator自定义控件开发流程

Qt Creator自定义控件开发流程 在 Qt 5.9 Creator 中开发自定义控件的完整流程如下&#xff0c;分为设计、实现、集成和测试四个阶段&#xff1a; 1. 创建自定义控件类 (1) 新建类文件 右键项目 → 添加新文件 → C Class基类选择 QWidget 或现有控件&#xff08;如 QPushBu…