Maven

为什么学习maven

1、Maven作为依赖管理的工具

-------1、jar包的规模
随着我们使用的框架越来越多jar包也越来越多
-------2、jar包的来源
第三方网站提供下载。问题是不规范,在使用过程中会出现各种问题
-------3、jar包的依赖关系

2、Maven作为构建管理工具

-------1、构建
编译---->打包

3、结论

管理规模庞大的jar包,需要专门工具
脱离ide环境执行构建炒作,需要专门的工具

Maven核心程序解压与配置

1、官网地址

https://maven.apache.org/

2、解压maven

核心程序压缩包:apache-maven-3.8.4-bin.zip,解压到非中文、没有空格的目录。
例如:在解压目录中,我们需要着重关注Maven的核心配置文件:conf/settings.xml

3、本地仓库

本地仓库默认值:用户家目录/.m2/repository。由于本地仓库的默认位置是在用户的家目录下,而家目录往往是在C盘,也就是系统盘。将来Maven仓库中jar包越来越多,仓库体积越来越大,可能会拖慢C盘运行速度,影响系统性能。所以建议将Maven的本地仓库放在其他盘符下。配置方式如下:本地仓库这个目录,我们手动创建一个空的目录即可。
在这里插入图片描述
记住:一定要把localRepository标签从注释中拿出来。
注意:本地仓库本身也需要使用一个非中文、没有空格的目录。

4、配置阿里云提供的镜像仓库

Maven下载jar包默认访问境外的中央仓库,而国外网站速度很慢。改成阿里云提供的镜像仓库,访问国内网站,可以让Maven下载jar包的时候速度更快。配置的方式是:1、将原有的例子配置注释掉
在这里插入图片描述
2、加入我们的配置
在这里插入图片描述

5、配置Maven工程的基础JDK版本

如果按照默认配置运行,Java工程使用的默认JDK版本是1.5,而我们熟悉和常用的是JDK 1.8版本。修改配置的方式是:将profile标签整个复制settings.xml文件的profiles标签内。
在这里插入图片描述

Maven结构:

1 、Maven核心概念:坐标

在这里插入图片描述

2、坐标和仓库中jar包的存储路径之间的对应关系

在这里插入图片描述

3、 pom.xml 解释

<!--当前Maven工程的坐标-->
<groupId>com.atguigu.maven</groupId>
<artifactId>pro01-maven-java</artifactId>
<version>1.0-SNAPSHOT</version>
<!--当前Maven工程的打包方式,可选值有下面三种:-->
<!--jar:表示这个工程是一个Java工程-->
<!--war:表示这个工程是一个Web工程-->
<!--pom:表示这个工程是“管理其他工程”的工程-->
<packaging>jar</packaging>
<name>pro01-maven-java</name>
<url>http://maven.apache.org</url>
<properties>
<!--工程构建过程中读取源码时使用的字符集-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!--当前工程所依赖的jar包-->
<dependencies>
<!--使用dependency配置一个具体的依赖-->
<dependency>
<!--在dependency标签内使用具体的坐标依赖我们需要的一个jar包-->
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<!--scope标签配置依赖的范围-->
<scope>test</scope>
</dependency>
</dependencies>

4、Maven工程的目录结构

在这里插入图片描述

依赖范围

.当 A jar 包用到了 B jar 包中的某些类时,A 就对 B 产生了依赖,这是概念上的描述。那么如何在项目
中以依赖的方式引入一个我们需要的 jar 包呢?使用 dependency 标签指定被依赖 jar 包的坐标就可以了。
在这里插入图片描述

范围对比

在这里插入图片描述

结论:compile:通常使用的第三方框架的 jar 包这样在项目实际运行时真正要用到的 jar 包都是以 compile 范围进行依赖的。比如 SSM 框架所需jar包。
test:测试过程中使用的 jar 包,以 test 范围依赖进来。比如 junit。
provided:在开发过程中需要用到的“服务器上的 jar 包”通常以 provided 范围依赖进来。比如 servlet-api、jsp-api。而这个范围的 jar 包之所以不参与部署、不放进 war 包,就是避免和服务器上已有的同类 jar 包产生冲突,同时减轻服务器的负担。说白了就是:“服务器上已经有了,你就别带啦!”

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值