Maven的学习与2022IDEA创建Maven的web项目的教程(这个比上一期更“啰嗦哦~,前面不想删了,整体再来一遍”)

news/2024/5/3 16:15:06/文章来源:https://blog.csdn.net/m0_70083523/article/details/127396262

IDEA

Maven

▶简介:

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

  • 提供了一套标准化的项目结构
    在这里插入图片描述

  • 提供了一套标准化的构建流程(编译。测试。打包,发布…)

  • 提供了一套依赖管理机制

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

    在pom.xml中通过代码从仓库导包

    <! --导入mysql驱动jar包-->
    <dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.32</version></dependency>
    </dependencies>
    

Maven提供了一套标准化的项目结构,所有IDE使用Maven构建的项目结构完全一样,所有IDE创建的Maven项目可以通用。eclipse、myeclipse、idea创建的项目可以随意导入。

模型:
在这里插入图片描述
仓库分类:

1.本地仓库(Local Repository):自己计算机上的一个目录

2.中央仓库(Central Repository):由Maven团队维护的全球唯一的仓库(一般开源)------地址: https://repo1.maven.org/maven2/

3.远程仓库(私服) Remote Re pository:一般由公司团队搭建的私有仓库

仓库的使用:

当项目中使用坐标引入对应依赖jar包后,首先会查找本地仓库中是否对应的jar包:

  • 如果有,则在项目直接引用
  • 如果没有,则去中央仓库中下载对应的jar包到本地仓库(下载过程,Maven内部提供)

还可以搭建远程仓库,将来jar包的查找顺序变为:

  • 本地仓库—>远程仓库—>中央仓库

▶Maven的安装配置:

1.解压apache-maven-3.8.6.rar既安装完成

网址:http://maven.apache.org/download.cgi

2.环境变量:

  • 配置环境变量MAVEN_HOME为安装路径的bin目录
    在这里插入图片描述
    3.在Path中编辑新建%MAVEN_HOME%\bin

4.配置完成后在cmd中输入mvn -version
在这里插入图片描述

5.配置本地仓库:修改conf/settings.xml 中的为一个指定目录【在maven根目录下建立一个自定义文件mvn_resp作为本地仓库】

< localRepository>D:\apache-maven-3.8.6\mvn_resp< /localRepository>   自己的本地仓库路径

4.配置阿里云私服:修改conf/settings.xml中的标签,为其添加如下子标签:

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

▶MAVEN基本使用:

Maven常用的命令:【mvn 命令】

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

Maven声明周期:

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

  1. clean:清理工作

  2. default:核心工作,例如编译,测试,打包,安装等

  3. site:产生报告。发布站点等

▶IDEA配置MAVEN:

IDEA配置MAVEN环境

  • 新建一个空项目,选择File–>Settings
  • 搜索maven
  • 设置IDEA本地安装的Maven
    在这里插入图片描述
    maven的路径等都要换成前面我们自己,“user setting file”的默认路径是在C:\Users\本地.m2

Maven坐标详解

什么是坐标?

  • Maven 中的坐标是资源的唯一标识

  • 使用坐标来定义项目或引入项目中需要的依赖

Maven坐标主要组成:

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

示例:

定义一个项目的坐标
<groupId>com.itheima</groupId>
<groupId>mysql</groupId>
<artifactId>maven-demo</artifactId>
mysql的一个驱动版本坐标
<dependency><artifactId>mysql-connector-java</ artifactId><version>1.0-SNAPSHOT</version><version>5.1.46</version>
</dependency>

IDEA创建Maven项目

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

IDEA导入Maven项目

步骤:

  1. 选择右侧Maven面板,点击+(add Maven Projects)
  2. 选中文件对应的pom.xml文件,双击即可
  3. 如果没有Maven面板,选择View → Appearance Tool Window Bars

配置Maven-Helper插件:

方便使用Maven插件和断点操作

1.选择IDEA中File --> Settings2

2.选择Plugins

3.搜索Maven,选择第一个Maven Helper,点击Install安装,弹出面板中点击Accept

4.重启IDEA

在这里插入图片描述

▶依赖管理:

导入依赖:

1.在pom.xml中编写标签

2.在标签中使用引入坐标

3.定义坐标的groupld,artifactld,version

<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql-connector-java.version}</version>
</dependency>

4.点击刷新按钮,使坐标生效(将坐标删除再次点击刷新,jar就删除)
在这里插入图片描述
▶提供一个网站可以复制所需sql的坐标

https://mvnrepository.com/artifact/mysql/mysql-connector-java

【https://mvnrepository.com/ 是maven的官网,不知道jar包版本号可以去这里找对应的jar包版本】
在这里插入图片描述
▶每导入一个点击刷新过于繁琐,让它直接生效

files——Sittings——Build, Execution, Deployment——Any changes——确定
在这里插入图片描述
▶需要某些jar包,直接导入

Alt+Insert出现面板

如果有Dependency就直接点击然后搜索;若没有点击Add dependency搜索,选择版本,直接导入也可以

依赖范围:

  • 通过设置坐标依赖范围规定jar的作用范围 (编译环境、测试环境、运行环境)的关系,使用scope标签
<dependency><groupld>junit</groupId><artifact1d>junitc</artifactId><eversion>4. 13</version><escope>test</scope>  依赖范围
</dependency>

在这里插入图片描述

  • 默认值:compile

六种依赖范围解释:

依赖范围就是用来控制依赖与这三种classpath(编译classpath、测试classpath、运行classpath)的关系,Maven有以下几种依赖范围。

1.compile: 编译依赖范围。如果没有指定,就会默认使用该依赖范围。使用此依赖范围的maven依赖,对于编译 测试 运行三种的classpath都有效。

2.test:测试依赖范围。使用此依赖范围的Maven依赖,只对于测试的classpath有效,在编译主代码或者运行主代码的时候都无法依赖此类依赖。典型的例子是jUnit,它只有在编译测试代码及运行测试代码的时候才有效。

3.provided:以提供依赖范围。使用此依赖范围的maven依赖,对于编译和测试classpath有效,但在运行时无效。典型的例子是servlet-api,编译和测试项目的时候需要该依赖,但在运行的时候,由于容器已经提供,就不需要maven重复地引入一遍。打包的时候可以不用包进去,别的设施会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。相当于compile,但是打包阶段做了exclude操作

4.runtime:运行时依赖范围。使用此依赖范围的maven依赖,对于测试和运行classpath有效,但在编译主代码时无效。典型的例子是JDBC驱动实现,项目主代码的编译只需要jdk提供的jdbc的接口,只有在执行测试或者运行测试的时候才需要实现上述接口的jdbc的驱动

5.system:系统依赖范围。从参与度来说,和provided相同,不过被依赖项不会从maven仓库下载,而是从本地文件系统拿。需要添加systemPath的属性来定义路径,该依赖与三种范围的classpath

和provided依赖范围完全一致。可能造成不可移植,谨慎使用。

6.import:导入依赖范围。该依赖范围不会对三种classpath产生实际的影响。只有在dependencyManagement下才有效果

▶IDEA中创建Maven Web项目并启动Tomcat

【此处使用的是2022IDEA,与其他IDEA版本会有些不同】

①new——project选择:
在这里插入图片描述
非必须步骤:【在Properties中添加一个参数archetypeCatalog=internal 可以帮助我们快速构建项目 】就在上图加号的空白框中输入,是键值的方式。

②创建完成后,File——settings找到:
在这里插入图片描述
③看自己的文件目录,目录文件没有要创建【pom.xml相当于lib】
在这里插入图片描述
​ 创建java和resources目录:
在这里插入图片描述
在这里插入图片描述
④配置Tomcat,运行:

  • 点这个后,进去点加号,选择自己的Tomcat路径等等
    在这里插入图片描述

  • 注意一个地方:
    在这里插入图片描述
    第一次创建挺慢的,看控制台加载完,直到出现src目录。
    注意,如果使用maven,本地仓库每次都需要去配置以下(settings那步),要不然jar包和一些文件还会在C:\Users\本地.m2------我是见一次删一次。
    不过我的项目创建需要好久(可能Jules的网太差了吧)

▶war与war exploded的区别:

在这里插入图片描述
war:启动Tomcat的时候会将项目打成war包,java项目的压缩包叫war包。将项目放到Tomcat的启动目录下就能运行,发布模式。

war exploded:将项目编译成class文件,不会war包,相当于将class文件复制到Tomcat的启动目录下,开发模式。

-------------------------------------一条完美的分割线-----------------------------------

MyBatis

什么是MyBatis?

  • MyBatis是一款优秀的持久层框架,用于简化JDBC开发

  • MyBatis本是Apache 的一个开源项目iBatis, 2010年这个项目由apache softwarefoundation迁移到了google code,并且改名为MyBatis。2013年11月迁移到Github

  • 官网: https://mybatis.org/mybatis-3/zh/index.html

  • 持久层:

    负责将数据到保存到数据库的那一层代码【JavaEE三层架构:表现层、业务层、持久层

简化:

创建模块,导入坐标

编写MyBatis核心配置文件–>替换连接信息解决硬编码问题

编写SQL映射文件–>统一管理sql语句,解决硬编码问题

JDBC开发

  • MyBatis本是Apache 的一个开源项目iBatis, 2010年这个项目由apache softwarefoundation迁移到了google code,并且改名为MyBatis。2013年11月迁移到Github

  • 官网: https://mybatis.org/mybatis-3/zh/index.html

  • 持久层:

    负责将数据到保存到数据库的那一层代码【JavaEE三层架构:表现层、业务层、持久层

简化:

创建模块,导入坐标

编写MyBatis核心配置文件–>替换连接信息解决硬编码问题

编写SQL映射文件–>统一管理sql语句,解决硬编码问题
在这里插入图片描述

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

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

相关文章

2022年国内最牛的Java面试八股文合集(MCA版),不接受反驳

纵观今年的技术招聘市场&#xff0c; Java依旧是当仁不让的霸主 &#xff01;即便遭受 Go等新兴语言不断冲击&#xff0c;依旧岿然不动。究其原因&#xff1a; Java有着极其成熟的生态&#xff0c;这个不用我多说&#xff1b;Java在 运维、可观测性、可监 控性方面都有着非常优…

STL容器 —— map和set的模拟实现

文章目录1. 红黑树的框架2. 模板参数的一些细节3. 红黑树支持迭代器3.1 迭代器的实现3.1.1 解引用3.1.2 和 !3.1.3 和 - -3.2 红黑树封装迭代器3.2.1 修改一下insert3.2.2 迭代器的 begin(),end()3.2.3 修改一下find函数&#xff0c;返回迭代器4. 红黑树继续完善4.1 红黑树的…

UE4技能系统GameplayAbilitySystem

注:本分享主要面向策划,重点介绍GAS框架的思想,以期拓展技能机制的设计思路,其中设计技术实现的部分,可参见: 在文中如果出现UE4中实现的注意事项,会用(UE_Note)标记。 https://blog.csdn.net/pirate310/article/details/106311256 GasShooter演示项目的示例文档。 ht…

【Flink 实战系列】如何给 Flink 任务设置合理的并行度?

如何给 Flink 任务设置合理的并行度? 背景介绍 最近看到很多朋友都在问这个问题,当我在开发 Flink 实时计算任务的时候,如何给每个算子设置合理的并行度呢?如果设置多了可能会出现资源浪费的情况,如果设置少了任务可能会出现反压,所以给 Flink 任务设置一个合理的并行度…

初识数据结构 堆(一)

初识数据结构 堆一. 堆的概念和性质1. 堆的概念2. 堆的性质3. 小题目练练手二. 代码实现以及堆的部分接口函数1. 结构体代码2. 初始化以及销毁3. 增加数据 &#xff08;大堆为例&#xff09;一. 堆的概念和性质 我们在上一篇博客介绍存储二叉树的两种方式 分别是顺序结构和链…

Docker-compose启动mysql

前提&#xff1a;安装docker-compose curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.1/docker-compose-uname -s-uname -m > /usr/local/bin/docker-compose docker-compose.yml version: 3 services: mysql: image: mysql:5.7.22 container_n…

css flex布局 —— 项目属性 flex-shrink

定义 flex-shrink 属性定义了项目的收缩规则。 flex-shrink 主要处理当 flex 容器空间不足时候&#xff0c;单个元素的收缩比例。当父元素的宽度小于子元素宽度之和并且超出了父元素的宽度时&#xff0c;flex-shrink 就会按照一定的比例进行收缩&#xff1a;将子元素宽度之和…

django+pyecharts制作工单系统实时刷新可视化仪表盘并设置报表定时发送

目录 仪表盘整体项目文件夹结构 demo应用效果 demo应用 demo应用的sql语句 demo应用定义的查询mysql类 在demo/views.py文件中 demo应用部分完整代码 urls.py views.py index.html 没有模糊背景 bindex.html 有模糊背景 demo2应用 demo2应用效果 2,将demo和demo2应用结…

Servlet入门学习笔记

目录 一、前置知识&#xff1a;Maven &#x1f34e;初识Maven &#x1f34e;Maven的使用 二、Servlet &#x1f351; 第一个Servlet程序&#xff1a;hello world 1、创建Maven项目 2、引入依赖 3、创建目录结构 4、编写servlet代码 5、打包 6、部署 7、验证程序 &a…

【Python】Python下载及安装(windows系统)

Python下载及安装&#xff08;windows系统&#xff09;下载安装包安装程序配置PATH其他问题下载安装包 浏览器访问下载地址&#xff0c;下载windows的最新版本 安装程序 双击程序安装 1、立即安装&#xff0c;会直接在下面的安装路径下安装&#xff0c;默认C盘 2、自定义安装…

Day7——四数相加||、赎金信、三数之和、四数之和

算法训练的第七天 目录 前言 一、四数相加|| 暴力解法思路&#xff1a; 哈希解法思路&#xff1a; 二、赎金信 解题思路&#xff1a; 三、三数之和 解题思路&#xff1a; 四、四数之和&#xff1a; 解题思路&#xff1a; 总结 前言 今日文案&#xff1a; 许多事情看…

在哪能查到英文论文?

不论是撰写英文论文还是引用外文文献&#xff0c;写论文的过程中想必缺不了检索合适的英文论文这个步骤&#xff0c;在本篇内容里&#xff0c;不仅教会你如何查到英文论文&#xff0c;还要教会你怎么样快速找到合适的英文论文&#xff01;听起来是不是令人心驰神往&#xff0c;…

facebook、Netflix 10倍速工程效能提升实践

工程效能是什么呢&#xff1f;工程效能是研发团队能够持续为用户产生有效价值的效率&#xff0c;包括有效性、效率和可持续性三个方面。一提到工程效能&#xff0c;大家脑子里马上会浮现持续构建、持续发布、开发流程改进等词汇&#xff0c;往往会忽略有效性。有效性&#xff0…

若依微服务项目本地启动

1.项目地址 https://gitee.com/y_project/RuoYi-Cloud 使用git本地克隆 git clone https://gitee.com/y_project/RuoYi-Cloud2.导入数据库 1.将下图的两个数据库导入ry-cloud数据库 2.导入nacos和seata的数据库里面有键数据库语句直接运行即可 3.下载nacos 1.下载地址 http…

05-运算符

文章目录算数运算符算数运算符执行的优先级顺序赋值运算符一元运算符自增运算符使用比较运算符逻辑运算符运算符优先级 *算数运算符 掌握算数运算符&#xff0c;能写出一些具备运算能力的小程序 数学运算符也叫算数运算符&#xff0c;主要包括加、减、乘、除、取余&#xff0…

ArcGIS中高风险地区热力图制作

一、数据来源及介绍 吉林省长春市中高风险地区名录 登陆微信&#xff0c;查找国家政务服务平台小程序&#xff0c;点击各地疫情风险等级查询&#xff0c;即可查看各地区中高风险地区所在地。 长春市行政边界数据 行政边界数据来源于阿里云数据可视化平台&#xff08;DataV…

后缀数组原理

一 点睛 在字符串处理中&#xff0c;后缀树和后缀数组都是非常有力的工具&#xff0c;后缀数组是后缀树的一个非常精巧的替代品&#xff0c;比后缀树更容易实现&#xff0c;可以实现后缀树的很多功能&#xff0c;时间复杂度也不逊色&#xff0c;比后缀树所占用的空间也小很多。…

0 引言和准备

14天阅读挑战赛 努力是为了不平庸&#xff01;这句话可能有些道理 本文概要&#xff1a; 本专栏是想挑战下阅读《趣味算法》一书&#xff1b; 本文主要是开读前&#xff0c;记录一下对本书的理解&#xff0c;和设定一个计划目标。同时&#xff0c;也简单总结了下&#xff0c;对…

DES加密原理描述与分析

目录1.简介2.加密原理2.1 加密步骤2.2 子密钥生成3.解密原理4.安全性5. 3DES 1.简介数据加密标准(英语:Data Encryption Standard,缩写为 DES)是一种对称密钥加密块密码算法,1976年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),随后在国际上广泛流传开来。…

【linux】 第4回 Xshell安装操作

1. 虚拟机关键配置名词解释 1. 虚拟⽹络编辑器说明桥接模式(可以访问互联⽹!!!)配置的地址信息和物理主机⽹段地址信息相同, 容易造成地址冲突NAT模式(可以访问互联⽹!!!)配置的地址信息和物理主机⽹段地址信息不同, 造成不了地址冲突仅主机模式 (不可以访问互联⽹)获取…