Maven
简介:Maven是一款构建和管理Java项目的工具。是基于【项目对象模型】即POM(project object model)的概念,通过一小段描述信息来管理项目的构建。
Maven就是用来构建和管理Java项目的工具。
作用:
- 依赖管理
- 统一的项目结构
- 标准化的项目构建流程
中央仓库、本地仓库、私服:
我们要用到的Jar包都保存在本地仓库中,如果项目用到本地项目有的依赖包就直接拿,如果没有,就会去到中央仓库下载到本地仓库中。中央仓库只有唯一一个,在外国,我们下载会很慢。所以就有了私服,这个私服就是企业自己建立的仓库,阿里云有,我们一般会去阿里下,因为去外国下太慢了,后面会说怎么把下载地址该到阿里上。
安装Maven
去官网就能下到Maven的压缩包。解压缩就相当于安装了。建议版本3.6.1
要做的几步:
- 配置本地仓库与阿里的私服。
<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <localRepository>B:\ConfigFile\apache-maven-3.6.0\maven_repo</localRepository> <pluginGroups> </pluginGroups> <proxies> </proxies> <servers> </servers> <mirrors> <mirror> <id>aliyunmaven</id> <mirrorOf>contral</mirrorOf> <name>aliyun maven</name> <url>https://maven.aliyun.com/nexus/content/groups/public</url> </mirror> </mirrors> <profiles> </profiles> </settings>
这是我的\apache-maven-3.6.0\conf 下的settings.xml文件,大家复制的时候注意把“”<localRepository>B:\ConfigFile\apache-maven-3.6.0\maven_repo</localRepository>“”这行地址改成自己的
- 配置环境变量
这一步是为了在任何地方都能使用maven。
win+r cmd 输入 control.sysdm,,3 进入环境变量
增加一个变量,名字叫 MAVEN_HOME 下面地址填 apache-maven的地址。
然后去到path中,添加 %MAVEN_HOME\bin%
最后验证 命令行 mvn -v 出现版本号即成功。
在Idea中配置Maven并使用
这里进行两个方面的介绍:
- 在idea中配置Maven
- 创建一个Maven项目
1、配置Maven的具体操作:
有两个方法,这第一个方法只是对当前项目有效,故每次新创建一个项目都要走一次这个流程。第二个方法就教大家怎么在全部项目,包括以后创建的项目都有效。
方法一:
第一步:
填上自己对应的路径。
第二步:
大家看到我的JDK版本是11,Maven的使用是需要搭配JDK的,故使用前要确保自己的JDK已经配置好了,这里也推荐大家和我一起使用JDK11,因为目前企业主流使用也是JDK11.
方法二:
噢全圈错了,应该是下面的关闭。
我们关闭后就会来到这里,进入设置,这里设置的步骤其实跟方法一 一模一样,但是在这里设置的,就是全部项目都统一了的。
2. 创建并使用Maven
创建Maven需要先创建一个项目,这里就不耽误大家时间了,就从创建Maven开始讲起。
这里建议两个点,一个是Location,默认没有图中的\JoneyB_Maven,是我自己加上去的,建议把Maven放在项目中的一个文件夹中, 第二是注意JDK要和自己版本对应,然后创建即可。创建这一步是需要联网的。
创建完之后,开始使用。
点击会弹出Hello Maven。
Maven进一步探讨
下面我们进一步探讨Maven的四个功能或者说特性。
- 依赖管理
- 依赖传递
- 依赖范围
- 生命周期
容我一一道来。
1.依赖管理
就是从中央仓库或者从私服中下载依赖,所谓依赖就是我们运行项目时所需要的Jar包。
我们的依赖管理都是在pom.xml文件进行的。可以看到dependencies ,依赖的复数形式,下面就是dependency。 dependency中有groupId artifactId,这两个都是用来标记依赖的,两个合在一起就是依赖的身份证。
下载好的依赖都能去到我们前面设置好的Maven仓库中找得到。
就在lib目录下躺着。
2.依赖传递
如图,就是说,不是直接在自己项目下pom.xml文件下声明的,不管是依赖所要用到的前置依赖,还是项目所需要用到的依赖,都会有一个索引,让自己项目能找到这些间接依赖。
就像我的世界中的MOD,有时候一个MOD的使用需要另一个MOD的环境。噢!我们说到了环境。差不多就是环境的概念,一个Jar包,或者一个MOD要在一个环境才能运行,这个环境可以是另一个Jar包,也可以是另一个MOD。
像在我的世界中,MOD需要的前置MOD还需要自己再下载一遍,而这里需要的前置Jar就能自动关联了。
3.依赖范围
我们想一个依赖在哪个过程中起作用? 就用scope。
这里我们看到scope写了出来,还填了test,我们默认的时候就是不填的。不填就是默认的情况。
我们一般就用前面两个,后面两个是比较特殊的时候使用的,比如上面的范例也写了。
4.生命周期
生命周期是对所有Maven项目的构建过程进行抽象和统一。他详细地描述了一次项目的构建需要经历哪些阶段。
他的生命周期不是一条线下来。而是分成三套独立的生命周期。
三条命分别用来干三件不同的事情。
这里有很多阶段。但重要的就5个阶段
分别是clean,compile,test,package,install
在Maven管理里面,我们可以看到这几条的。
这里要重点说一下的是,执行一个阶段,这条命的前面的阶段都会执行一遍。
比如,我执行install, 前面的compile test package都会执行。
大家注意看了吗? 好像......没有clean?
是我少打了吗?
注意我前面的描述 “”这条命“” clean并不是install这条命里面的 所以不执行 。
这里的一个阶段就是一个功能。
SpringBoot introduction
大家可能会诧异,我们貌似听说过Spring,但是这多了一个Boot? 没错,但别担心,这SpringBoot的情况也同前面ajax一样,因为太难用所以被淘汰了。 转而SpringBoot就是Spring的升级版,操作简单,容易上手。
下面我们就开始创建一个SpringBoot工程。
创建SpringBoot
有几个点是需要说一下的,本来是不用说的,但是今年2023年,start.springboot.com有些东西改了,但没关系,几步的设置就能搞回来。
几个要注意的点:
- JDK要选和自己版本相对应的。
- java也要选择版本对应的
- 最后选择Jar
有的人可能会在Java中选不到11 , 显示只有17 和 21.
这时候只需要点击那个小齿轮,把网站换成 https://start.aliyun.com/
就好了,这是springboot自己搞的。官网上已经不能用java11了。还好阿里云有镜像。
我们要搞的是springweb,所以输入web,选web,craete。 等一下就好了。
写一点东西,进行测试。
运行起来后,看到端口是8080,然后去浏览器打开 localhost:8080
运行成功.
TomCat
这是一个web服务器,用来部署web程序。提供网上信息的浏览服务。
它对HTTP协议操作进行了封装,这样我们就不用去操作HTTP协议了,因为这个HTTP协议是搞网络通信都要做的,而且十分机械的操作,实现起来无非就是复制粘贴,没有太大的改动,tomcat就把他集成进来了。
他的优势是外部应用程序的开发更加便捷高效。
tomcat我们可以自己下载一个,解压下来就相当于安装了。
下面是tomcat的文件结构
下面教大家改他的端口
但其实我们的springboot自带了tomcat,看我上面的图,这里我贴出来
在第二行大家也能看到tomcat的字样,其实就是内置了tomcat,并且运行了起来。
一般都是用这个内置的。
最后说说
起步依赖
起步依赖就是下载springboot自带的依赖,我们如果看pom里面,依赖中没有带上版本号的一般就是起步依赖,这些起步依赖会继承于一个父工程当中,他们的版本号在父工程中已经写了。
那起步依赖有什么用呢? 其实就是简化依赖,起到一个视觉上的这么一个...... 我们引入这个依赖,就相当于引入这块业务开发所需要的所有依赖,他用到的原理就是依赖传递。
话说回来,这个简化跟一间房子的装修规划大同小异,房子里面不经常触碰、看到的地方就用来储物,经常操作的地方就尽量地空,让我们更专心地去操作。
本章完。