JavaWeb-Maven基础

news2024/10/23 19:24:43

Maven是专门用于管理和构建Java项目的工具,是 Apache 下的一个纯 Java 开发的开源项目,基于项目对象模型(POM)概念。先来学习一下Maven基础,等后面学完开发框架后再学Maven高级,这次的内容如下
在这里插入图片描述

一、概述

1、简介

Maven是专门用于管理和构建Java项目的工具,主要功能
1)提供了一套标准化的项目结构
在这里插入图片描述

2)提供了一套标准化的构建流程(编译,测试,打包,发布…)
在这里插入图片描述

3)提供了一套依赖管理机制

依赖管理实质:管理项目所依赖的第三方资源(jar包、插件…)

传统方式
1.下载jar包
2.复制jar包到项目
3.将jar包加入工作环境

Maven管理(优点)
1.Maven使用标准的坐标配置来管理各种依赖
2.只需要简单的配置就可以完成依赖管理

在这里插入图片描述

二、Maven安装配置

1、下载Maven安装包并解压

1.1 下载Maven(以下方法二选一)

1)通过官网下载:https://maven.apache.org/download.cgi
在这里插入图片描述

2)为了方便,我这里提供了网盘
链接:https://pan.baidu.com/s/1yZgxWz29vNsx-dg4yZrQWw?pwd=w7xk
提取码:w7xk

1.2 解压并查看目录

下载完成后,找到压缩包,选择要解压的盘符(如我的是D盘),右键选择解压到当前文件夹即可。

注:最好解压到一个不含中文和空格的路径下

打开文件夹,目录结构及相关说明如下
在这里插入图片描述

2、配置Maven环境变量

1)找到环境变量并作如下配置
如我的是(右键此电脑->属性->高级系统设置->环境变量)
在这里插入图片描述

2)将MAVEN_HOME 添加到Path系统变量
在系统变量里找到 Path并选中,点击编辑->新建,添加如下
在这里插入图片描述

3)检测是否配置成功
win+R 打开命令提示符,输入mvn -v,出现如下则说明环境变量配置成功
在这里插入图片描述

3、配置本地仓库

由于Maven默认的远程仓库在国外, 导致下载jar包时速度非常慢, 推荐使用国内的阿里云仓库,可提高访问和下载速度。若不配置,则本地仓库默认的路径如下(我的是C:\Users\ASUS\.m2)
在这里插入图片描述

1)首先在maven目录下新建一个 mvn_resp作为本地仓库,并复制该目录路径(D:\apache-maven-3.6.3\mvn_resp)
在这里插入图片描述

2)修改conf/settings.xml中的<localRepository>为一个指定目录,如下
在这里插入图片描述

4、配置阿里云私服

修改conf/settings.xml中的标签,为其添加如下子标签,完成后ctrl+s保存退出

<mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>
        http://maven.aliyun.com/nexus/content/groups/public/
    </url>
    <mirrorOf>central</mirrorOf>        
</mirror>

在这里插入图片描述

完成上述步骤后,maven就安装配置完成,接下来就可以在IDEA中创建Maven项目了。

三、IDEA中创建Maven项目

1、IDEA配置Maven

创建Maven项目前需要先配置Maven。
1)IDEA中 选择File --> Settings --> 搜素maven,如下
在这里插入图片描述

2)修改默认配置配置,设置IDEA使用本地安装的Maven,并修改配置文件路径,如下
在这里插入图片描述

配置好后点击Apply应用,然后OK即可。

2、创建Maven项目

1)创建模块(File->New->Module),选择Maven,点击Next
在这里插入图片描述

2)填写模块名称,坐标信息,点击finish,创建完成
在这里插入图片描述

如这是我填写的
在这里插入图片描述

创建完成后的目录结构如下
在这里插入图片描述

注:目录下没有webapp,因为目前创建的是java项目而非web项目,等后面学到web核心时会讲

3)编写HelloWorld,并运行
在这里插入图片描述

四、IDEA导入Maven项目

一般企业的项目都是由团队合作共同开发的,所以一些时候可能需要我们导入其他成员写好的Maven项目到我们的工程里,步骤如下,非常简单。
1)选择右侧Maven面板,点击+号
在这里插入图片描述

2)选中对应项目的pom.xml文件,双击即可

注:如果没有Maven面板,选择 View → Appearance > Tool Window Bars

五、Maven基本使用

1、Maven坐标

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

2、Maven坐标主要组成

groupld
- 定义当前Maven项目隶属组织名称(通常是域名反写,例如: com.itweb)
artifactld
- 定义当前Maven项目名称(通常是模块名称,例如order-service、goods-service)
version
- 定义当前项目版本号

3、Maven常用命令

Maven主要有以下常用命令,其功能即对应的英文意思,非常好理解,可以自己动手每一个命令都去试试。

compile 编译
clean 清理
test 测试
package 打包
install 安装

如下是装了Maven Helper插件后,能够非常方便地查看和运行命令。具体的插件安装流程不过多赘述。
在这里插入图片描述

六、Maven生命周期

Maven构建项目生命周期描述的是一次构建过程经历了多少个事件,对项目构建的生命周期划分为3套。
1)clean生命周期(清理工作)

clean:删除目标目录中的编译输出文件。

2)default生命周期(核心工作)

如编译compile,测试test,打包package,安装install等

3)site生命周期(产生报告,发布站点等)

site:生成项目文档和站点信息。

deploy-site:将生成的站点信息发布到远程服务器,以便共享项目文档。

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

七、依赖管理 & 依赖范围

1、使用坐标导入jar包

步骤如下,IDEA非常智能,输入半边就会识别补全。
1)在pom.xml中编写标签
2)在标签中使用引入坐标
3)定义坐标的groupId,artifactId,version
4)点击刷新按钮,使坐标生效。
在这里插入图片描述

2、快捷键方式

在pom.xml中按alt + insert,选择Dependency,在弹出的面板中搜索对应坐标,然后双击选中对应坐标,点击刷新按钮,使坐标生效。

此种方式通过IDEA提供的模版,非常方便快捷,实现高效开发。

3、自动导入

每次坐标添加完成后,可以手动刷新使坐标生效。当然,还可以配置自动导入,即添加完成后不用手动刷新就能生效。步骤如下
1)选择IDEA中 File --> Settings
2)在弹出的面板中找到Build Tools
3)选择Any changes,点击ok 即可生效。
在这里插入图片描述

4、依赖范围(了解)

通过设置坐标的依赖范围(scope),可以设置对应jar包的作用范围,如

编译环境(Maven项目下对应的java目录)
测试环境(Maven项目下对应的test目录)
运行环境(导入jar包后运行时有效)

在这里插入图片描述

注:scope默认值为compile

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

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

相关文章

主题乐园如何让新客变熟客,让游客变“留客”?

群硕跨越时间结识了一位爱讲故事的父亲&#xff0c;他汇集了一群幻想工程师&#xff0c;打算以故事为基础&#xff0c;建造一个梦幻的主题乐园。 这个乐园后来成为全球游客最多、收入最高的乐园之一&#xff0c;不仅在2023财年创下了近90亿&#xff08;美元&#xff09;的营收…

9款世界级垂直领域软件架构师Visio平替作图工具!

1 LucidChart 一个基于HTML5的在线流程图绘制和协作应用平台&#xff0c;用户可以通过它方便快速的实现流程图表的绘制&#xff0c;同时还可以实现与他人进行实时的流程图绘制和修改功能&#xff0c;对需要群组协作功能的团队来说&#xff0c;这点非常方便。 由于LucidChart是…

机器学习-面经(part8、贝叶斯和其他知识点)

机器学习面经其他系列 机器学习面经系列的其他部分如下所示&#xff1a; 机器学习-面经(part1)-初步说明 机器学习-面经(part2)-交叉验证、超参数优化、评价指标等内容 机器学习-面经(part3)-正则化、特征工程面试问题与解答合集机器学习-面经(part4)-决策树共5000字的面试问…

【CSP试题回顾】201503-3-节日

CSP-201503-3-节日 关键点&#xff1a;格式化输出 在C中&#xff0c;格式化输出通常利用iostream库中的功能&#xff0c;特别是iomanip头文件提供的一系列操作符。这些操作符用于控制输出格式&#xff0c;如宽度、填充、对齐方式等。在你提供的代码中&#xff0c;用于格式化输…

python 输入和输出

在 Python 中&#xff0c;输入和输出是最基本的操作之一。你可以使用内置函数 input() 来获取用户输入&#xff0c;使用 print() 函数来输出信息到控制台。 输入&#xff08;Input&#xff09; input() 函数用于从用户那里获取输入。这个函数会将用户的输入作为字符串返回。 示…

蓝桥杯(3.7)

P1102 A-B 数对 import java.util.Scanner; public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();int c sc.nextInt();int[] res new int[n1];for(int i1;i<n;i)res[i] sc.nextInt();int sum 0;for(i…

Linux系统的进程,看完它,相信你想kill“it“就kill“it“o((>ω< ))o

Linux系统的进程 众所周知&#xff0c;不管在什么系统中&#xff0c;进程和线程都是操作系统中高并发处理中产生了重要的作用。Linux作为一个操作系统&#xff0c;也必须要拥有这两者才可以进行高并发。 进程是资源分配的最小单位。每一个进程都是相互独立的&#xff0c;不管是…

WordPress供求插件API文档:用户登录

该文档为WordPress供求插件文档&#xff0c;详情请查看 WordPress供求插件&#xff1a;一款专注于同城生活信息发布的插件-CSDN博客文章浏览阅读67次。WordPress供求插件&#xff1a;sliver-urban-life 是一款专注于提供同城生活信息发布与查看的插件&#xff0c;该插件可以实…

TCP收发——计算机网络——day02

今天主要讲了TCP的收发 TCP发端步骤 ①socket ②connect ③send ④closeTCP收端步骤 ①socket ②bind ③listen ④accept ⑤recv ⑥clise其函数主要有 connect int connect(int sockfd, const struct sockaddr *addr,socklen_t addrlen);功能:发送链接请求参数:sockfd:套接…

【设计数据密集型应用】复制

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱敲代码的小黄&#xff0c;阿里淘天Java开发工程师&#xff0c;CSDN博客专家&#x1f4d5;系列专栏&#xff1a;Spring源码、Netty源码、Kafka源码、JUC源码、dubbo源码系列&#x1f525;如果感觉博主的文章还不错的话…

nginx 使用记录

使用&#xff1a; 去官网下载指定版本1.24.0&#xff0c;直接将压缩包解压到指定目录&#xff0c;打开cmd即可启动 启动服务器&#xff1a; 方法一&#xff1a;打开cmd命令窗口&#xff0c;切换到nginx解压目录下&#xff0c;输入命令start nginx &#xff0c;回车即可&…

数据结构:AVL树

目录 1、AVL树的概念 2、二叉搜索树的功能与实现 1、AVL树节点定义 2、AVL树的插入 3、AVL树的旋转操作 1、左旋 2、右旋 3、左右旋 4、右左旋 3、AVL树完整代码实现 1、AVL树的概念 在前面的文章中&#xff0c;我们学过了二叉搜索树&#xff0c;二叉搜索树虽可以缩短查…

智能控制:物联网智能插座对接文档

介绍 一开始买的某米的插座&#xff0c;但是好像接口不开放&#xff0c;所以找到了这个插座&#xff0c;然后自己开发了下&#xff0c;用接口控制插座开关。wifi的连接方式&#xff0c;通电后一般几秒后就会连接上wifi&#xff0c;这个时候通过接口发送命令给他。 产品图片 通…

cesium-天际线

主要是两个着色器 let postProccessStage new Cesium.PostProcessStage({//unform着色器对象 textureScalefragmentShader:// 声明一个纹理采样器 colorTexture 用于读取纹理颜色uniform sampler2D colorTexture; // 声明一个纹理采样器 depthTexture 用于读取深度纹理unifor…

windows安装程序无法将windows配置为此计算机

目录 问题描述 问题原因 解决办法 方法一 方法二 方法三&#xff1a; 问题描述 重装系统时显示windows安装程序无法将windows配置在此计算机硬件上. 问题原因 安装介质已损坏 如果可引导的安装介质&#xff08;如DVD或USB驱动器&#xff09;损坏或损坏&#xff0c;安装过…

XXE-XML实体注入漏洞

目录 1.xml基础 1.1什么是xml 1.2xml文档结构 1.3 什么是DTD 1.4 什么是实体 1.5 什么是外部实体 2.xxe漏洞 2.1xxe漏洞基本介绍 2.2xxe漏洞的危害 经典漏洞案例分析 3.xxe漏洞挖掘和利用 3.1. 识别潜在的XML入口 3.2. 检查XML处理逻辑 3.3. 构造试探Payload 常…

CVE-2024-25600 WordPress Bricks Builder RCE-漏洞分析研究

本次代码审计项目为PHP语言&#xff0c;我将继续以漏洞挖掘者的视角来分析漏洞的产生&#xff0c;调用与利用..... 前方高能&#xff0c;小伙伴们要真正仔细看咯..... 漏洞简介 CVE-2024-25600 是一个严重的&#xff08;CVSS 评分 9.8&#xff09;远程代码执行 (RCE) 漏洞&am…

软件设计师13--进程调度

软件设计师13--进程调度 考点1&#xff1a;PV操作的概念进程的同步与互斥PV操作例题&#xff1a; 考点2&#xff1a;信号量与PV操作进程管理 - PV操作与互斥模型进程管理 - PV操作与同步模型进程管理 - 互斥与同步模型结合例题&#xff1a; 考点3&#xff1a;前趋图与PV操作进程…

爬虫(四)

1.图片验证码 import requestsres requests.get(https://www.gushiwen.cn/RandCode.ashx)with open("code.png", "wb") as f:f.write(res.content)2.打码平台 网址&#xff1a;http://www.ttshitu.com/&#xff0c;找到开发文档点击Python,没有钱了要用我…

如何在Linux中安装ARM交叉环境编译链

安装ARM交叉环境编译链过程如下&#xff1a; 首先创建一个文件夹如下&#xff1a; mkdir -p Linux_ALPHA/toolcahin然后将arm交叉编译工具链安装包拖到Linux中如下&#xff1a; 先输入mv 拖入的安装包即可 mv /var/run/vmblock-fuse/blockdir/pXeysK/gcc-4.6.4.tar.xz .直接…