Maven框架SpringBootWeb简单入门

一、Maven

★ Maven:是Apache旗下的一个开源项目,是一款用于管理和构建java项目的工具。   官网:https://maven.apache.org/
★ Maven的作用:   1. 依赖管理:方便快捷的管理项目依赖的资源(jar包),避免版本冲突问题。   2. 统一项目结构:提供标准、统一的项目结构。       具体的统一结构:       - src/main/java: java源代码目录       - src/main/resources:  配置文件信息       - src/test/java: 测试代码       - src/test/resources: 测试配置文件信息   3. 项目构建:maven提供了标准的、跨平台(Linux、Windows、MacOS) 的自动化项目构建方式。★ Maven模型:     * 项目对象模型 (Project Object Model)     * 依赖管理模型(Dependency)     * 构建生命周期/阶段(Build lifecycle & phases)      

1、配置Maven仓库

仓库:用于存储资源,管理各种jar包,本质就是一个目录(文件夹),这个目录被用来存储开发中所有依赖(就是jar包)和插件。   Maven仓库分为:
- 本地仓库:自己计算机上的一个目录(用来存储jar包)
- 中央仓库:由Maven团队维护的全球唯一的。仓库地址:https://repo1.maven.org/maven2/
- 远程仓库(私服):一般由公司团队搭建的私有仓库
jar包的查找顺序则变为: 本地仓库 --> 远程仓库(如果有)--> 中央仓库Maven安装:    下载地址:https://maven.apache.org/download.cgi
1、解压 apache-maven-3.6.1-bin.zip(解压即安装)建议解压到没有中文、特殊字符的路径下。
* bin目录 : 存放的是可执行命令。(mvn 命令重点关注)
* conf目录 :存放Maven的配置文件。(settings.xml配置文件后期需要修改)
* lib目录 :存放Maven依赖的jar包。(Maven也是使用java开发的,所以它也依赖其他的jar包)
2、配置本地仓库  2.1、在自己计算机上新一个目录(本地仓库,用来存储jar包)  2.2、进入到conf目录下修改settings.xml配置文件        1). 使用超级记事本软件,打开settings.xml文件,定位到53行       2). 复制<localRepository>标签,粘贴到注释的外面(55行)       3). 复制之前新建的用来存储jar包的路径,替换掉<localRepository>标签体内容
3、配置阿里云私服   由于中央仓库在国外,所以下载jar包速度可能比较慢,进入到conf目录下修改settings.xml配置文件:    1). 使用超级记事本软件,打开settings.xml文件,定位到160行左右。    2). 在<mirrors>标签下为其添加子标签<mirror>,内容如下:   
<mirror>     <id>alimaven</id>     <name>aliyun maven</name>     <url>http://maven.aliyun.com/nexus/content/groups/public/</url>   <mirrorOf>central</mirrorOf>          
</mirror>
注意配置的位置,在<mirrors> ... </mirrors> 中间添加配置。
注: 只可配置一个<mirror>(另一个要注释!) ,不然两个可能发生冲突,导致jar包无法下载!!!!!!!
4、配置环境变量     Maven环境变量的配置类似于JDK环境变量配置一样   1). 在系统变量处新建一个变量MAVEN_HOME   MAVEN_HOME环境变量的值,设置为maven的解压安装目录。   2). 在Path中进行配置   PATH环境变量的值,设置为:%MAVEN_HOME%\bin   3). 打开DOS命令提示符进行验证,出现如图所示表示安装成功   mvn -v
5.配置jdk版本

2、配置Maven集成环境

一、当前工程设置:
1、选择 IDEA中 File  =>  Settings  =>  Build,Execution,Deployment  =>  Build Tools  =>  Maven
2、设置IDEA使用本地安装的Maven,并修改配置文件及本地仓库路径。   Maven home path :指定当前Maven的安装目录   User settings file :指定当前Maven的settings.xml配置文件的存放路径   Local repository :指定Maven的本地仓库的路径 (如果指定了settings.xml, 这个目录会自动读取出来, 可以不用手动指定)
3、配置工程的编译版本为11
- Maven默认使用的编译版本为5(版本过低)
上述配置的maven环境,只是针对于当前工程的,如果我们再创建一个project,又恢复成默认的配置了。
二、全局设置    1、进入到IDEA欢迎页面 - 选择 IDEA中 File  =>  close project   2、打开 All settings , 选择 Build,Execution,Deployment  =>  Build Tools  =>  Maven   3、配置工程的编译版本为11   这里所设置的maven的环境信息,并未指定任何一个project,此时设置的信息就属于全局配置信息。 以后,我们再创建project,默认就是使用我们全局配置的信息。

3、创建Maven项目

1、创建一个空项目 
2、创建模块,选择Maven,点击Next
3、填写模块名称,坐标信息,点击finish,创建完成
4、在Maven工程下,创建HelloWorld类   
maven-project01|---  src  (源代码目录和测试代码目录)   |---  main (源代码目录)          |--- java (源代码java文件目录)          |--- resources (源代码配置文件目录)   |---  test (测试代码目录)          |--- java (测试代码java目录)          |--- resources (测试代码配置文件目录)|--- target (编译、打包生成文件存放目录)
5、编写 HelloWorld,并运行public class HelloWorld {   public static void main(String[] args) {       System.out.println("Hello Maven ...");   }
}   

4、Maven核心配置文件

POM (Project Object Model) :指的是项目对象模型,用来描述当前的maven项目。
- 使用pom.xml文件来实现
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">   <!-- POM模型版本 -->   <modelVersion>4.0.0</modelVersion>
​   <!-- 当前项目坐标 -->   <groupId>com.itheima</groupId>   <artifactId>maven_project1</artifactId>   <version>1.0-SNAPSHOT</version>      <!-- 打包方式 -->   <packaging>jar</packaging></project>             
pom文件详解:
- <project> :pom文件的根标签,表示当前maven项目
- <modelVersion> :声明项目描述遵循哪一个POM模型版本 - 虽然模型本身的版本很少改变,但它仍然是必不可少的。目前POM模型版本是4.0.0
- 坐标 :<groupId>、<artifactId>、<version> - 定位项目在本地仓库中的位置,由以上三个标签组成一个坐标
- <packaging> :maven项目的打包方式,通常设置为jar或war(默认值:jar)
​
Maven坐标:使用坐标来定义项目或引入项目中需要的依赖    Maven坐标主要组成    * groupId:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.itheima)    * artifactId:定义当前Maven项目名称(通常是模块名称,例如 order-service、goods-service)    * version:定义当前项目版本号      
**注意:
* 上面所说的资源可以是插件、依赖、当前项目。
* 我们的项目如果被其他的项目依赖时,也是需要坐标来引入的。

5、导入Maven项目

- 方式1:使用Maven面板,快速导入项目
打开IDEA,选择右侧Maven面板,点击 + 号,选中对应项目的pom.xml文件,双击即可。
说明:如果没有Maven面板,选择 View  =>  Appearance  =>  Tool Window Bars   
- 方式2:使用idea导入模块项目
File  =>  Project Structure  =>  Modules  =>  +  =>  Import Module   找到要导入工程的pom.xml

6、依赖配置

依赖:指当前项目运行所需要的jar包。一个项目中可以引入多个依赖:   在maven工程的pom.xml文件中,引入logback的依赖。
1. 在pom.xml中编写<dependencies>标签
2. 在<dependencies>标签中使用<dependency>引入坐标
3. 定义坐标的 groupId、artifactId、version   点击刷新按钮,引入最新加入的坐标
​
- 刷新依赖:保证每一次引入新的依赖,或者修改现有的依赖配置,都可以加入最新的坐标。
注意事项:
1. 如果引入的依赖,在本地仓库中不存在,将会连接远程仓库 / 中央仓库,然后下载依赖(这个过程会比较耗时,耐心等待)
2. 如果不知道依赖的坐标信息,可以到mvn的中央仓库(https://mvnrepository.com/)中搜索
​
**添加依赖的几种方式:**
1. 利用中央仓库搜索的依赖坐标
2. 利用IDEA工具搜索依赖
3. 熟练上手maven后,快速导入依赖   
依赖具有传递性:   由于logback-classic又依赖了logback-core和slf4j,所以必须把这3个jar包全部复制到项目工程下。   使用maven,当项目中需要使用logback-classic时,只需要在pom.xml配置文件中,添加logback-classic的依赖坐标即可。由于maven的依赖具有传递性,所以会自动把所依赖的其他jar包也一起导入。   
依赖传递可以分为:
1. 直接依赖:在当前项目中通过依赖配置建立的依赖关系
2. 间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源
​
排除依赖:   排除依赖:指主动断开依赖的资源。(被排除的资源无需指定版本)   maven-projectA依赖了maven-projectB,maven-projectB依赖了Junit。基于依赖的传递性,所以maven-projectA也依赖了Junit       
依赖范围:    在项目中导入依赖的jar包后,默认情况下,可以在任何地方使用。    可以通过<scope>标签设置其作用范围。    作用范围:       1. 主程序范围有效(main文件夹范围内)       2. 测试程序范围有效(test文件夹范围内)       3. 是否参与打包运行(package指令范围内)
scope主程序测试程序打包(运行)范例
compile(默认)YYYlog4j
test-Y-junit
providedYY-servlet-api
runtime-YYjdbc驱动

7、生命周期

Maven的生命周期就是为了对所有的构建过程进行抽象和统一。 描述了一次项目构建,经历哪些阶段。具体指的是项目的生命周期。
生命周期包含了项目的清理,初始化,编译,测试,打包,集成测试,验证,部署和站点生成等构建步骤。   Maven对项目构建的生命周期划分为3套(相互独立):   - clean:清理工作。   - default:核心工作。如:编译、测试、打包、安装、部署等。   - site:生成报告、发布站点等。
主要关注以下几个:
• clean:移除上一次构建生成的文件
• compile:编译项目源代码
• test:使用合适的单元测试框架运行测试(junit)
• package:将编译后的文件打包,如:jar、war等
• install:安装项目到本地仓库
Maven的生命周期是抽象的,在Maven的设计中,实际任务(如源代码编译)都交由插件来完成。   
生命周期的顺序是:clean --> validate --> compile --> test --> package --> verify --> install --> site --> deploy 
​
需要关注的是:clean -->  compile --> test --> package  --> install 
执行指定的生命周期有两种执行方式:   1. 在idea工具右侧的maven工具栏中,选择对应的生命周期,双击执行   2. 在DOS命令行中,通过maven命令执行:在项目目录下打开cmd窗口。执行"mvn "+命令   
更新依赖索引:   有时候给idea配置完maven仓库信息后,在idea中依然搜索不到仓库中的jar包。    打开设置----搜索maven----Repositories----选中本地仓库-----点击Update   初始情况下,我们的本地仓库是没有任何jar包的,此时会从私服去下载(如果没有配置,就直接从中央仓库去下载),可能由于网络的原因,jar包下载不完全,这些不完整的jar包都是以lastUpdated结尾。此时,maven不会再重新帮你下载,需要你删除这些以

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

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

相关文章

LightDB 23.3 plorasql 函数支持inout参数输出

开篇立意 oracle PLSQL函数中返回值有两种情况&#xff1a; &#xff08;1&#xff09;使用return返回值&#xff1b; &#xff08;2&#xff09;使用out修饰的参数&#xff08;oracle不支持inout&#xff09; SQL> create function yu(id inout int) return int asbeginn…

【C# 基础精讲】文件读取和写入

文件读取和写入是计算机程序中常见的操作&#xff0c;用于从文件中读取数据或将数据写入文件。在C#中&#xff0c;使用System.IO命名空间中的类来进行文件读写操作。本文将详细介绍如何在C#中进行文件读取和写入&#xff0c;包括读取文本文件、写入文本文件、读取二进制文件和写…

选择大型语言模型自定义技术

推荐&#xff1a;使用 NSDT场景编辑器 助你快速搭建可二次编辑器的3D应用场景 企业需要自定义模型来根据其特定用例和领域知识定制语言处理功能。自定义LLM使企业能够在特定的行业或组织环境中更高效&#xff0c;更准确地生成和理解文本。 自定义模型使企业能够创建符合其品牌…

PAT 1013 Battle Over Cities

个人学习记录&#xff0c;代码难免不尽人意。 It is vitally important to have all the cities connected by highways in a war. If a city is occupied by the enemy, all the highways from/toward that city are closed. We must know immediately if we need to repair a…

计算机机房的管理

1 电源问题 不稳定的电源对电脑的使用寿命是一个极大的威胁&#xff0c;特别是对于机房来说危害 性更大。为此&#xff0c;学校要添置必要的稳压器&#xff0c;设置其正常供电的电压为 220 伏、电流 为 l6 安对电脑室供电。如有电压发生偏差&#xff0c;要及时检查供电情况&…

BDA初级分析——认识SQL,认识基础语法

一、认识SQL SQL作为实用技能&#xff0c;热度高、应用广泛 在对数据分析人员的调查中SQL长期作为热度排名第-一的编程语言超过Python和R SQL&#xff1a;易学易用&#xff0c;高效强大的语言 SQL&#xff1a;Structured Query Language 结构化查询语言 SQL&#xff1a;易学…

python threading.Event()用法

红绿灯例子 Event的用法 import threading,timeeventthreading.Event()def lighter():timesec0event.set()while True:if 5<timesec<10:event.clear()print("红灯亮")elif timesec>10:event.set()timesec0else:print("绿灯亮")time.sleep(1)tim…

BSN“五、十、百”工程实施半年成果丰硕,助力数字化转型和高质量发展

为推动“云网链”融合的新基建赋能数字经济高质量发展&#xff0c;将区块链服务网络&#xff08;BSN&#xff09;打造成为中国数字经济和社会治理的核心区块链公共服务平台&#xff0c;2023年2月&#xff0c;在“第三届区块链服务网络&#xff08;BSN&#xff09;全球合作伙伴大…

力扣75——二分查找

总结leetcode75中的二分查找算法题解题思路。 上一篇&#xff1a;力扣75——堆/优先队列 力扣75——二分查找 1 猜数字大小2 咒语和药水的成功对数3 寻找峰值4 爱吃香蕉的珂珂1-4解题总结 1 猜数字大小 题目&#xff1a; 猜数字游戏的规则如下&#xff1a;每轮游戏&#xff0…

多维时序 | MATLAB实现WOA-CNN-BiGRU-Attention多变量时间序列预测

多维时序 | MATLAB实现WOA-CNN-BiGRU-Attention多变量时间序列预测 目录 多维时序 | MATLAB实现WOA-CNN-BiGRU-Attention多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 多维时序 | MATLAB实现WOA-CNN-BiGRU-Attention多变量时间序列预测 1.程…

java 向上取整 java对小数取整

取整方法 Math.floor(double a) 向下取整 Math.ceil(double a) 向上取整 Math.round(double a) 四舍五入 0.5向下取整 Math.rint(double a) 就近取整 1.6接近2&#xff0c;所以就取2 1.4接近1&#xff0c;所以就取1 1.5跟1和2都很接近&#xff0c;这时候就取偶数 (int) 类型强转…

MongoDB:数据库初步应用

一.连接MongoDB 1.MongoDBCompass连接数据库 连接路径:mongodb://用户名:密码localhost:27017/ 2.创建数据库(集合) MongoDB中数据库被称为集合. MongoDBCompass连接后,点击红色框加号创建集合,点击蓝色框加号创建文档(数据表) 文档中的数据结构(相当于表中的列)设计不用管…

腾讯云国际轻量应用服务器使用流程是什么呢?

腾讯云国际轻量应用服务器怎么使用呢&#xff1f;下面一起来了解一下&#xff1a; 1. 熟悉轻量应用服务器基础知识 ①什么是轻量应用服务器 TencentCloud Lighthouse&#xff1f; ②轻量应用服务器与云服务器 CVM 的区别是什么&#xff1f; ③为什么选择轻量应用服务器&#xf…

一个DW的计算

一个DW的计算 1- 题目: 已知一个DW1.1 要求: 从DW中取出指定的位的值1.1.1 分析1.1.2 实现1.1.3 简化实现1.1.4 验证 2- 题目: 已知一个DW2.1 要求: 从DW中的指定的P和S,取出指定的位的值2.1.1 分析2.1.2 实现 1- 题目: 已知一个DW 有图中所示一行信息&#xff0c;表示一个DW(…

常见的Web安全漏洞有哪些,Web安全漏洞常用测试方法介绍

Web安全漏洞是指在Web应用程序中存在的可能被攻击者利用的漏洞&#xff0c;正确认识和了解这些漏洞对于Web应用程序的开发和测试至关重要。 一、常见的Web安全漏洞类型&#xff1a; 1、跨站脚本攻击(Cross-Site Scripting&#xff0c;XSS)&#xff1a;攻击者通过向Web页面注入…

神经网络基础-神经网络补充概念-41-梯度的数值逼近

概念 梯度的数值逼近是一种用于验证梯度计算正确性的方法&#xff0c;它通过近似计算梯度来与解析计算的梯度进行比较。虽然数值逼近在实际训练中不常用&#xff0c;但它可以用来检查手动或自动求导的实现是否正确。 代码实现 import numpy as np# 定义函数 f(x) x^2 def f…

养生的年轻人,自己给自己“治病”

【潮汐商业评论/原创】 “最近嘴周总长痘&#xff0c;应该是上火了&#xff0c;我这就下单点金银花露喝。”对于长痘这件事&#xff0c;Anna的第一反应就是“内调”。 “针对性护肤和涂药这些方法治标不治本&#xff0c;就算用完痘痘不泛红且瘪了&#xff0c;身体里的问题没解…

上传文件报413Request EntityToo Large错误解决办法

产生这种原因是因为服务器限制了上传大小 1、nginx服务器的解决办法 修改nginx.conf的值就可以解决了 将以下代码粘贴到nginx.conf内 client_max_body_size 20M 可以选择在http{ }中设置&#xff1a;client_max_body_size 20m; 也可以选择在server{ }中设置&#xff1a;cli…

金蝶软件实现Excel数据复制分录信息粘贴到单据体分录行中

>>>适合KIS云专业版V16.0|KIS云旗舰版V7.0|K/3 WISE 14.0等版本<<< 实现Excel数据复制分录信息粘贴到金蝶单据体分录中,在采购订单|采购入库单|销售订单|销售出库单等类型单据中,以少量的必要字段在excel表格中按模板填列好,很方便快捷地复制到金蝶单据表体…

java+springboot+mysql银行管理系统

项目介绍&#xff1a; 使用javaspringbootmysql开发的银行管理系统&#xff0c;系统包含超级管理员、管理员、客户角色&#xff0c;功能如下&#xff1a; 超级管理员&#xff1a;管理员管理&#xff1b;客户管理&#xff1b;卡号管理&#xff08;存款、取款、转账&#xff09…