Maven详解和IDEA中配置Maven

目录

一:Maven概述

 标准化的项目结构

标准化的构建流程

依赖管理

二.Maven介绍

1.Maven模型

2.仓库

 三. Maven安装和配置

         安装Maven

1.:进入maven官网-->找到下载页面-->点击二进制zip文档的链接

2.:解压当前文件夹

3.:配置环境变量

4.:检查

5.:配置本地仓库

6..配置阿里云私服

四.Maven的基本使用

1.命令演示

2.Maven生命周期【了解】

五.IDEA中配置Maven

六.IDEA中的相关操作

1.导入Maven项目

2.Maven命令操作

3.使用坐标引入jar包

4.依赖范围【先了解,以后用到了可以再学】


一:Maven概述

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

  • 提供了一套标准化的项目结构 ;   
  • 提供了一套标准化的构建流程(编译,测试,打包,发布……); 
  • 提供了一套依赖管理机制

 标准化的项目结构

        项目结构就是我们创建的文件夹整个层级,每一个开发工具(IDE)都有自己不同的项目结构,它们互相之间不通用。我再eclipse中创建的目录,无法在idea中进行使用,这就造成了很大的不方便,而Maven为我们提供了一套标准的项目结构,方便我们在不同的IDE中导入我们的整个项目;如图所示:

 

                                

标准化的构建流程

        通过Maven我们可以方便的对项目进行一个构建的流程,包括:编译,测试,打包,发布等等的功能。

        只需要简单的Maven命令:

依赖管理

        "依赖",顾名思义就是我们完成某项任务或者功能可能需要其他东西的辅助;就比如说:我们学习JDBC时可能需要MySQL的驱动jar包。需要到网上下载,导入到我们的项目中,整体下来是很繁琐的。使用Maven后可以很方便的完成上述繁琐的操作

        学习JDBC时导入的MySQL的驱动包和阿里的德鲁伊数据库连接池:

        使用Maven后,用标准的坐标【我们日常生活中说到"去西安,北京(坐标),这就是一个坐标,标识一个我们要去的地方,Maven也同样如此,通过坐标识唯一的资源"】 配置来管理各种依赖,只需要简单的配置就可以完成依赖管理。下图是导入的资源,这里只需要了解一下,后面会详细讲解。

<!--    导入mysql的驱动包-->
    <dependencies>
        <!--    导入mysql的驱动包-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version> 5.1.32</version>
        </dependency>
        <!--        测试依赖-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

二.Maven介绍

        "Apache Maven 是一个软件项目管理和理解工具。基于项目对象模型的概(POM),Maven 可以从中心信息管理项目的构建、报告和文档."这是官网中的一段话。

大家有什么问题可以去官网查询,官网更为准确。

官网 :Apache Maven官网网址

1.Maven模型

        Maven POM只需要了解一下即可,如果感兴趣可以访问官网查看详细内容,或者访问 菜鸟教程Maven POM.

POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。

执行任务或目标时,Maven 会在当前目录中查找 POM。它读取 POM,获取所需的配置信息,然后执行目标。

           简单理解:项目对象模型就是将我们自己抽象成一个对象模型,有自己专属的坐标,如下图所示是一个 Maven项目:

        依赖管理模型则是使用坐标来描述当前项目依赖的第三方jar包在哪里【坐标】。



2.仓库

        想想 我们创建Maven项目,在项目中使用坐标来指定项目的依赖,然后我们的jar包就会凭空出现,可能吗?显然是不可能的,可能的情况就是我们的jar包存储在我们的仓库中,那么依赖的jar包到底存储在什么地方呢?其实依赖jar包是存储在我们的本地仓库中。而项目运行时从本地仓库中拿需要的依赖jar包。

仓库分类

【一会会安装并介绍】

仓库分类
本地仓库自己计算机上的一个目录
中央仓库由Maven团队维护的全球唯一的仓库 地址:网址
远程仓库(私服)一般由公司团队搭建的私有仓库 今天我们只学习远程仓库的使用,并不会搭建。 当项目中使用坐标引入对应依赖jar包后,首先会查找本地仓库中是否有对应的jar包: 如果有,则在项目直接引用; 如果没有,则去中央仓库中下载对应的jar包到本地仓库

       注:图片来源


 三. Maven安装和配置

         安装Maven

1.:进入maven官网-->找到下载页面-->点击二进制zip文档的链接

Binary是可执行版本,已经编译好可以直接使用。因此我们直接下载这个文件即可
Source是源代码版本,需要自己编译成可执行软件才可使用。

2.:解压当前文件夹

bin目录 : 存放的是可执行命令。mvn 命令重点关注。

conf目录 :存放Maven的配置件。 settings.xml 配置文件后期需要修改。

lib目录 :存放Maven依赖的jar包。Maven也是使用java开发的,所以它也依赖其他的jar包

3.:配置环境变量

1.右键此电脑–>属性–>高级系统设置–>环境变量

2.如图:点击环境变量--依次按步骤操作即可

4.:检查

配置完成后,打开cmd【快捷键:win+R】输入命令,看是否配置成功

命令:mvn-version

5.:配置本地仓库

找到我们刚才Maven的解压目录

修改 conf/settings.xml 中的 为一个指定目录作为本地仓库,用来存储jar包。

打开进行修改【】:

路径为:自己刚才创建的文件夹路径

配置信息:

 <localRepository>D:\Maven\maven_development\apache-maven-3.6.1\mvn_resp</localRepository>

6..配置阿里云私服

        中央仓库在国外,所以下载jar包速度可能比较慢,而阿里公司提供了一个远程仓库,里面基本也都有开源项目的jar包。 修改 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的基本使用

1.命令演示

compile :编译

clean:清理

test:测试

package:打包

install:安装

命令演示:

因为还没有在idea中配置maven,这里只需浏览一下即可,等会讲解配置问题

mvn compile  编译

1.提供了一个使用Maven构建的项目

2.我们使用上面命令需要在磁盘上进入到项目的 pom.xml 目录下,打开命令提示符

3.执行上述命令

第一次输入命令时,可能会等待下载插件,如图;

其他命令不在一一展示,读者可以自行在命令行中尝试........

2.Maven生命周期【了解】

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

Maven 对项目构建的生命周期划分为3套:

clean :清理工作。

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

site : 产生报告,发布站点等。这套声明周期一般不会使用。

同一套生命周期内,执行后边的命令,前面的所有命令会自动执行。例如默认(default)生命周期如下: 当我们执行 install (安装)命令时,它会先执行 compile 命令,再执行 test 命令,再执行 package 命令,最后执行 install 命令。

当我们执行 package (打包)命令时,它会先执行 compile 命令,再执行 test 命令,最后执行 package 命令。 默认的生命周期也有对应的很多命令,其他的一般都不会使用,我们只关注常用的:

了解更多:请参照菜鸟教程


五.IDEA中配置Maven

我的IDEA版本2022.3.3;不同的版本可能略有差异

1.首先找到新建项目的页面,点击 All settings....

2.Build----->Maven----->修改相关信息

如果我们第一次配置肯能会发现;其实IDEA中内置了Maven;而Maven的仓库就在我们的

C盘:

不使用默认的,使用我们下载的MAven和仓库信息:

3.点击OK“,返回开始的界面再点击”New Project“

4.出现Maven的项目配置结构

  • 右键”text“ --->new---->Directory-->输入文件名即可;

六.IDEA中的相关操作

1.导入Maven项目

若我们想再自己的Maven项目中导入别人的项目:

  1. 选择右侧Maven面板,点击 +
  2. 选中对应项目的pom.xml文件,双击即可【别人的项目就会被导入】
  3. 如果没有Maven面板,选择 View --> Appearance --> Tool Window Bars

2.Maven命令操作

刚才我们再Powershell中使用命令演示了编译,测试,安装等命令;再IDEA中我们可以通过图形化界面进行操作;如图所示:

配置Maven插件

Maven Helper:当我们项目很多时可以给我们带来方便

  • 选择 IDEA中 File --> Setting

  • 选择第一个 Maven Helper,点击Install安装,弹出面板中点击Accept

  • 重启IDEA后就可以使用

3.使用坐标引入jar包

使用坐标引入jar包的步骤:

1.在项目的 pom.xml 中编写标签  

<dependencies>  </dependencies>

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

3.定义坐标的 groupId,artifactId,version

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.33</version>
        </dependency>
  • 重要:记得刷新【这样才能起作用】

具体的坐标我们可以到如下网站进行搜索

https://mvnrepository.com/

其他的坐标大家可以自行尝试导入!

4.依赖范围【先了解,以后用到了可以再学】

        通过设置坐标的依赖范围(scope),可以设置 对应jar包的作用范围:编译环境、测试环境、运行环境。 如下图所示给 junit 依赖通过 scope 标签指定依赖的作用范围。 那么这个依赖就只能作用在测试环境,其他环境下不能使用:

  • scop可以的取值

  • compile :作用于编译环境、测试环境、运行环境。
  • test : 作用于测试环境。典型的就是Junit坐标,以后使用Junit时,都会将scope指定为该值 provided :作用于编译环境、测试环境。我们后面会学习 servlet-api ,在使用它时,必须将 scope 设置为该值,不然运行时就会报错
  • runtime : 作用于测试环境、运行环境。jdbc驱动一般将 scope 设置为该值,当然不设置也没有任何问题

如果引入坐标不指定 scope 标签时,默认就是 compile 值。以后大部分jar包都是使用默认值。



        因时间仓促,内容可能不完整或者有出错的地方,希望大家指正!如果对你有帮助,希望能获得一个免费的👍哦!

        最后祝大家小年快乐!身体健康!

参考:   

     黑马程序员JavaWeb教程icon-default.png?t=N7T8https://www.bilibili.com/video/BV1Qf4y1T7Hx/?spm_id_from=333.337.search-card.all.clickh草原印象-优快云博客草原印象擅长Hibernate,Maven,MyBatis,等方面的知识https://blog.youkuaiyun.com/gongjian0321草原印象擅长Hibernate,Maven,MyBatis,等方面的知识https://blog.youkuaiyun.com/gongjian0321

Cy_QAQicon-default.png?t=N7T8https://blog.youkuaiyun.com/qq_38190185

 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

〖七月〗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值