JavaWeb——Maven(2/8):概述-介绍安装(步骤、具体操作、测试)

news2024/11/24 6:51:57

目录

介绍

安装

步驟

具体操作

测试


主要讲解两个方面:Maven的介绍以及Maven的安装。

先来介绍一下没问当中的一些概念和模型。

介绍

  • Apache Maven是一个项目管理和构建工具,它基于项目对象模型(POM:project object model)的概念,通过一小段描述信息来管理项目的构建。
  • 作用:
    • 方便的依赖管理
    • 统一的项目结构
    • 标准的项目构建流程
  • 官网:Maven – Welcome to Apache Maven

Maven 的官网详细描述了 Maven 是一款什么样的工具及其核心特点。了解了 Maven 之后,还需了解其模型。

模型

看一幅图,Maven 由三个部分组成。

  • 第一部分是在项目构建的各个阶段提供各种插件,通过编译插件可对项目进行编译,通过测试插件进行测试,通过打包插件进行项目打包等,执行这些操作时不同阶段会有不同文件产生,如编译阶段有编译后的代码文件,打包阶段有打包后的jar文件,这些文件放在 target 目录下。这部分通过各种插件完成项目的标准化构建。
  • 第二部分是 Maven 的核心功能 —— 项目对象模型。可以通过 pom.xml 文件中的配置信息描述项目,比如准备的项目在 pom.xml 文件中最上面的描述信息,包括项目的模块名称和版本等,这三项信息称为项目的坐标,可唯一标识和定位一个项目。如果项目还需要依赖其他资源,可以在 pom.xml 文件中通过依赖管理模型(Dependency)标签指定依赖的坐标。Maven 会自动从仓库中查找依赖,先从本地仓库查找,如果本地仓库没有,就连接中央仓库查找并下载到本地仓库,然后关联本地仓库中的依赖。

仓库:用于存储资源,管理各种jar包。

  • 本地仓库:自己计算机上的一个目录。
  • 中央仓库:由Maven团队维护的全球唯一的。仓库地址:Central Repository:
  • 远程仓库(私服):一般由公司团队搭建的私有仓库。

Maven 涉及三个仓库,本地仓库是在本地电脑上存放从中央仓库下载下来的 Java 包的目录;

中央仓库是 Maven 核心团队维护的全球唯一仓库,包含全世界所有对外发布的 Java 包;

为了提高下载速度,可以引入公司团队自己搭建的私服仓库,当在 pom.xml 文件中引入一个依赖时,先查本地仓库,没有时,再查私服,私服也没有就连接中央仓库下载到私服再到本地仓库。

在安装 Maven 时会使用阿里云的私服提高下载速度。

安装

步驟

介绍完 Maven 的模型后,讲解 Maven 的安装。Maven 是绿色版软件,官方提供的安装包是 ZIP 包。安装及配置 Maven 主要进行四步操作:

安装步骤:

①、解压 apache-maven-3.6.1-bin.zip 。

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

//示例 
<localRepository>E:\develop\apache-maven-3.6.1\mvn_repo</localRepository>

③、配置阿里云私服:修改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>

④、配置环境变量:MAVEN_HOME为maven的解压目录,并将其bin目录加入PATH环境变量。

具体操作

  • 第一步,将 ZIP 包解压,这就完成了 Maven 的安装。

  • 第二步,配置 Maven 的本地仓库。在本地电脑上指定一个目录作为本地仓库,用来存放从中央仓库下载的 Java 包。

具体操作是打开 Maven 的配置文件(conf 目录下的 settings.xml 文件),找到指定本地仓库的标签(Local Repository),将其注释内容复制出来,

 在 Maven 解压目录下新建一个文件夹作为本地仓库目录,命名为 “mvn_repo”,然后将文件夾地址粘贴回配置文件中指定本地仓库地址。  

  • 第三步,配置阿里云私服提高 Java 包下载速度。在 Maven 的配置文件(也是conf 目录下的 settings.xml )中的 mirrors 标签中配置阿里云的私服地址,将准备好的阿里云私服地址复制过来粘贴到这里。

  • 第四步,配置环境变量。

为了在任意目录下都能执行 Maven 的指令,配置一个环境变量为 “Maven 目录”(指 Maven 的解压目录),并将 Maven 目录下的 bin 目录加入到 PATH 环境变量中。

具体操作是先复制 Maven 的安装目录,在 “此电脑” 上点击属性,再点击高级系统设置,打开后点击环境变量,新建一个 “Maven 目录” 的环境变量,将 Maven 的安装目录复制到这里,

示例:

然后在 PATH 环境变量中点击新建,输入 “% Maven 目录 %\bin”,将 Maven 安装目录下的 bin 目录加入到环境变量当中。

测试

完成 Maven 的安装及配置后,可以验证 Maven 是否安装成功。

在命令行中输入 “mvn -v” 查看 Maven 的版本,如果能看到版本号,说明 Maven 已安装配置成功。

同时需要说明,Maven 运行依赖于 JDK 的环境,这里采用 JDK17 版本.

不过,在后续的学习中,不管是外部开发还是项目阶段都基于 JDK11 版本讲解,JDK11 也是企业项目开发的主流版本。如果本地没有安装 JDK11 版本,需安装并将环境变量切换到 JDK11 版本。


END 


学习自:黑马程序员——JavaWeb课程 

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

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

相关文章

Java | Leetcode Java题解之第477题汉明距离总和

题目&#xff1a; 题解&#xff1a; class Solution {public int totalHammingDistance(int[] nums) {int ans 0, n nums.length;for (int i 0; i < 30; i) {int c 0;for (int val : nums) {c (val >> i) & 1;}ans c * (n - c);}return ans;} }

基于Flink+Hologres搭建实时数仓

Apache Paimon是一种流批统一的数据湖存储格式&#xff0c;结合Flink及Spark构建流批处理的实时湖仓一体架构。Paimon创新地将湖格式与LSM技术结合起来&#xff0c;给数据湖带来了实时流更新以及完整的流处理能力。借助实时计算Flink版与Apache Paimon&#xff0c;可以快速地在…

多人播客的生成#使用OpenAI Swarm框架

使用Swarm来写多智能体的代码&#xff0c;非常简洁高效。 什么是Swarm&#xff1f; Swarm是由OpenAI开发的一个实验性多代理系统框架&#xff0c;旨在探索多代理系统的高效接口。该框架注重轻量级、可控性高且易于测试&#xff0c;主要用于展示代理之间的交接与例行操作模式。S…

多智能体协同太复杂?OpenAI Swarm让问题迎刃而解

OpenAI Solutions团队最新推出的实验性框架Swarm正在为AI领域带来新的可能性。这个专为构建、编排和部署多智能体系统而生的轻量级工具集&#xff0c;正在改变我们处理复杂任务的方式。 Swarm框架的核心理念是让多个AI代理&#xff08;Agent&#xff09;协同工作&#xff0c;每…

基于SSM+Vue+MySQL的少儿编程网上报名系统

系统展示 用户前台界面 管理员后台界面 系统背景 在当下&#xff0c;随着国家对教育的重视以及教育部门对教育改革的不断推进&#xff0c;少儿编程教育逐渐成为了一个热门领域。传统的少儿编程报名方式往往依赖于线下填写纸质表格或电话报名&#xff0c;这种方式不仅效率低下&a…

群晖使用frpc连接qbittorrent时会出现Unauthorized

跨域问题&#xff1a; 如果你是通过不同的网络或子网访问 qBittorrent Web UI&#xff0c;可能会引发跨域问题。尝试在 qBittorrent.conf 中添加以下设置&#xff0c;允许跨域访问&#xff1a; find / -name qBittorrent.conf WebUI\HostHeaderValidationfalse 成功

【机器人数值优化】数值优化基础(一)从理论到实战全方位指南 | 解锁机器人技术的核心技能

&#x1f4af; 欢迎光临清流君的博客小天地&#xff0c;这里是我分享技术与心得的温馨角落 &#x1f4af; &#x1f525; 个人主页:【清流君】&#x1f525; &#x1f4da; 系列专栏: 运动控制 | 决策规划 | 机器人数值优化 &#x1f4da; &#x1f31f;始终保持好奇心&…

一文简述工程项目管理中的最常见概念

蓝燕云https://www.lanyancloud.com/致力于为工程行业中各类企业和组织提供专业、简单、可靠的工程项目管理系统&#xff0c;专注于提升企业对于项目管理中成本、进度、质量、安全、资料等全场景管理能力。 01 怎么理解工程项目管理&#xff1f; 建设工程项目管理指的是专业…

神经网络模型的“扩散与进化”思想启迪

在上一篇笔记「上交大全华班复现o1旅程式学习下的深思考」中&#xff0c;其中对于上交大提出的旅程学习即system2慢思考认知范式下对于“多步骤的隐式到显式空间状态映射下的细粒度联合概率分布建模”的描述隐喻为“社会心理学或社会经济学两种不同的长程动态系统慢演化现象”。…

Java之lambda

目录 lambda 引入 语法 函数式接口 lambda表达式的使用 语法精简&#xff1a; 代码示例&#xff1a; 变量捕获 局部变量捕获 成员变量捕获 lambda在集合中的使用 lambda的优缺点 lambda 引入 Lambda表达式是Java SE 8中一个重要的新特性。lambda表达式允许你通过表…

设计模式-原型模式(克隆、Clone、Prototype)

原型模式&#xff08;克隆、Clone、Prototype&#xff09;是一种创建型设计模式&#xff0c; 使你能够复制已有对象&#xff0c; 而又无需使代码依赖它们所属的类。 问题 譬如美国研制了一种特效药&#xff0c;而且还在专利保护器内&#xff0c;而印度制药公司看中了&#xff0…

常见开源组件的详解

文章目录 RPCRPC架构和工作流程为什么有了HTTP还要用RPC底层协议数据格式连接管理错误处理 使用场景常见的RPC框架 Web应用框架主要功能常见的Web应用框架Spring Boot (Java)Django (Python)Express.js (Node.js) Redis主要特点应用场景缓存问题Redis集群架构主从复制Redis Clu…

【算法】笨小猴

[NOIP2008]笨小猴_牛客题霸_牛客网 【描述】 eg1中&#xff0c;输入“error” “e”出现了1次&#xff0c;“r”出现了3次&#xff0c;“o”出现了1次 最大是3&#xff0c;最小是1&#xff0c;3-12&#xff0c;2是质数&#xff0c;所以输出“Lucky word”和这个单词 eg2中&…

【Oracle数据库进阶】003.SQL基础查询_增、删、改数据

课 程 推 荐我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448;入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448;虚 拟 环 境 搭 建 &#xff1a;&#x1…

【基于ARM深入分析C程序】1--ARM架构与汇编、分析C语句`a++`的执行过程

【基于ARM深入分析C程序】1–ARM架构与汇编、分析C语句a的执行过程 文章目录 【基于ARM深入分析C程序】1--ARM架构与汇编、分析C语句a的执行过程一、3个操作指令二、CPU是怎么知道执行这三条操作指令的&#xff1f;2.1 CPU的架构 2.2 寄存器 本文作为学习笔记&#xff0c;围绕的…

【ARM】v8架构programmer guide(6)_MMU内存管理模块

快进到内存管理模块吧&#xff0c;其他的后面再补充~ 目录 1.1 TLB (Translation Lookaside Buffer) 1.2 Kernel 和 Application 虚拟地址空间 1.3 转换虚拟地址到物理地址 1.3.1 安全和非安全地址空间 1.3.2 配置和使能MMU 1.3.3 当MMU没有使能的时候 1.4 ARMv8-A的页…

6.2 遍历重定位表

本节我们将编写一个遍历重定位表的示例程序&#xff0c;打印重定位表。 本节必须掌握的知识点&#xff1a; 遍历重定位表 6.2.1 遍历重定位表 实验四十三&#xff1a;遍历重定位表 以下代码实现打印"c:\\notepad64.exe"进程重定位表的所有信息。 /*--------------…

衡石分析平台系统-分析人员手册

应用创建​ 用户可以通过多种方式创建应用&#xff0c;不同场景下应用创建方法不同。 新建空白应用​ 新建空白应用是新建一个空的应用&#xff0c;应用中没有数据集和仪表盘。 点击应用创作页面右上方的新建应用&#xff0c;新建空白的分析应用和查询应用。 新建的空白应用…

记录一下,android studio 登录不上github的问题

android studio 2023.3.1.18 版本的编译器&#xff0c;出现问题&#xff0c;之前连接过的项目可以正常提交和拉取到github。 但是新建立的项目无法上传到github&#xff0c;提示错误cannot load information for github.com/:request response;access to this site&#xff0c;…

log4j2实际项目中使用

一 添加依赖 <!--移除spring-boot中默认的logback日志组件--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><exclusion><groupId>org.spring…