Maven- 01 工具简介和环境搭建

发布于:2022-12-24 ⋅ 阅读:(413) ⋅ 点赞:(0)

Maven

在这里插入图片描述

学习目标: Maven的安装配置以及使用IDEA创建Maven工程

maven是什么

​ maven翻译为“专家”,“内行”。Maven是Apache下的一个纯java开发的开源项目,它是一个项目管理工具,使用maven对java项目进行构建、依赖管理。当前使用Maven的项目越来越多。

什么是项目构建

​ 项目构建是一个项目从编写源代码到编译、测试、运行、打包、部署、运行的过程

传统项目构建过程

构建过程如下:

​ 1)在IDEA中创建一个java web工程

​ 2)在工程中编写源代码及配置文件等

​ 3)对源代码进行编译,java文件编译成class文件

​ 4)执行Junit单元测试

​ 5)将工程打成war包部署至tomcat运行

maven项目构建过程

​ maven将项目构建的过程进行标准化,每个阶段使用一个命令完成,下图展示了构建过程的一些阶段,后面章节详细介绍每个阶段,这里先大概了解下:

在这里插入图片描述

上图中部分阶段对应命令如下:

清理阶段对应maven的命令是clean,清理输出的class文件

编译阶段对应maven的命令是compile,将java代码编译成class文件。

打包阶段对应maven的命令是package,java工程可以打成jar包,web工程可以打成war包

运行一个maven工程(web工程)需要一个命令:tomat:run

maven工程构建的优点:

1、一个命令完成构建、运行,方便快捷。

2、maven对每个构建阶段进行规范,非常有利于大型团队协作开发。

什么是依赖管理

​ 什么是依赖?一个java项目可能要使用一些第三方的jar包才可以运行,那么我们说这个java项目依赖了这些第三方的jar包。

​ 举个例子:一个crm系统,它的架构是SSH框架,该crm项目依赖SSH框架,具体它依赖的Hibernate、Spring、Struts2。

​ 什么是依赖管理?就是对项目所有依赖的jar包进行规范化管理。

传统项目的依赖管理

​ 传统的项目工程要管理所依赖的jar包完全靠人工进行,程序员从网上下载jar包添加到项目工程中,如下图:程序员手工将Hibernate、struts2、spring的jar添加到工程中的WEB-INF/lib目录下。

手工拷贝jar包添加到工程中的问题是:

1、没有对jar包的版本统一管理,容易导致版本冲突。
2、从网上找jar包非常不方便,有些jar找不到。
3、jar包添加到工程中导致工程过大。

maven项目的依赖管理

​ maven项目管理所依赖的jar包不需要手动向工程添加jar包,只需要在pom.xml(maven工程的配置文件)添加jar包的坐标,自动从maven仓库中下载jar包、运行.

使用maven依赖管理添加jar的好处:

1、通过pom.xml文件对jar包的版本进行统一管理,可避免版本冲突。

2、maven团队维护了一个非常全的maven仓库,里边包括了当前使用的jar包,maven工程可以自动从maven仓库下载jar包,非常方便。

使用maven的好处

通过上边介绍传统项目和maven项目在项目构建及依赖管理方面的区域,maven有如下的好处:

1、一步构建

maven对项目构建的过程进行标准化,通过一个命令即可完成构建过程。

2、依赖管理

maven工程不用手动导jar包,通过在pom.xml中定义坐标从maven仓库自动下载,方便且不易出错。

3、maven的跨平台,可在window、linux上使用。

4、maven遵循规范开发有利于提高大型团队的开发效率,降低项目的维护成本,大公司都会考虑使用maven来构建项目。

Maven的下载使用

Maven的下载
从该网站 Maven 官网地址下载

  • 注意 低版本的IDEA 不支持高版本的 Maven
  • 2019 版 IDEA使用 3.6.3 版本的Maven就可以
    在这里插入图片描述

安装-解压即可 注意不要解压在中文路径下
下面是解压后的目录
在这里插入图片描述

目录名 描述
bin Maven 的可执行命令
boot 一些引导程序, 比如类加载器
conf 配置文件
lib Maven 本身运行所需要的Jar包

配置Maven

在环境变量中 新建变量名MAVEN_HOME 值为Maven的安装路径

然后在PATH中引用你的MAVAEN_HOME 如下图

在这里插入图片描述
在这里插入图片描述

查看是否配置成功可在黑窗口中输入 mvn –v 出现如下图所示说明配置成功

如果有时出现不是本地命令,也不是本地命令,可以用管理员身份打开黑窗口

maven仓库

​ maven的工作需要从仓库下载一些jar包,如下图所示,本地的项目A、项目B等都会通过maven软件从远程仓库(可以理解为互联网上的仓库)下载jar包并存在本地仓库,本地仓库 就是本地文件夹,当第二次需要此jar包时则不再从远程仓库下载,因为本地仓库已经存在了,可以将本地仓库理解为缓存,有了本地仓库就不用每次从远程仓库下载了。

下图描述了maven中仓库的类型:

在这里插入图片描述

  1. 本地仓库 :用来存储从远程仓库或中央仓库下载的插件和jar包,项目使用一些插件或jar包,优先从本地仓库查找

默认本地仓库位置在 u s e r . d i r / . m 2 / r e p o s i t o r y , {user.dir}/.m2/repository, user.dir/.m2/repository{user.dir}表示windows用户目录。

  1. 远程仓库:如果本地需要插件或者jar包,本地仓库没有,默认去远程仓库下载。

远程仓库可以在互联网内也可以在局域网内。

  1. 中央仓库 :在maven软件中内置一个远程仓库地址http://repo1.maven.org/maven2 ,它是中央仓库,服务于整个互联网,它是由Maven团队自己维护,里面存储了非常全的jar包,它包含了世界上大部分流行的开源项目构件。

配置本地仓库

在任意盘符下新建一个目录作为仓库

然后在Maven的安装目录下找到conf目录下的settings.xml配置文件,
在这里插入图片描述

打开此文件配置本地仓库的路径
本地仓库目录建好后 打开 settings.xml文件进行配置本地仓库

<localRepository>D:\mavenRepository</localRepository>

在这里插入图片描述

配置阿里云镜像

在这里插入图片描述
打开 settings.xml 文件,在文件中找到 【 mirrors 】标签,然后再标签中插入阿里云的配置 如下:

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

IDEA来 创建Maven项目

配置Maven

在这里插入图片描述

使用IDEA创建一个Maven项目

File-New-Project 弹出如下窗口 –选择Maven项目

在这里插入图片描述
在这里插入图片描述

初始化成功的项目

在这里插入图片描述

右侧Maven 侧边栏
在这里插入图片描述

初始化成功的本地仓库目录

在这里插入图片描述

Maven项目工程目录约定 重要

使用maven创建的工程我们称它为maven工程,maven工程具有一定的目录规范,如下:

src/main/java —— 存放项目的.java文件

src/main/resources —— 存放项目资源文件,如spring, hibernate配置文件

src/test/java —— 存放所有单元测试.java文件,如JUnit测试类

src/test/resources —— 测试资源文件

target —— 项目输出位置,编译后的class文件会输出到此目录

pom.xml——maven项目核心配置文件
Project

  |-src

  |   |-main
  |   |  |-java        —— 存放项目的.java文件
  |   |  |-resources   —— 存放项目资源文件,如spring, hibernate配置文件
​         |-webapp     —— webapp目录是web工程的主目录
​            |-WEB-INF
​              |-web.xml

  |   |-test
  |      |-java        ——存放所有测试.java文件,如JUnit测试类
  |      |-resources   —— 测试资源文件

  |-target             —— 目标文件输出位置例如.class、.jar、.war文件
  |-pom.xml           ——maven项目核心配置文件

重要的事情说三遍 Maven工程的目录结构必须遵循上面的结构

我们可以手动去创建Maven的目录结构

当然我们一般是通过软件帮我们创建的,不管是软件创建,还是手动创建,都必须遵循Maven的目录结构

如图所示 IDEA 创建出来的Maven项目结构如下

在这里插入图片描述

添加改变目录的方法

在这里插入图片描述

本文含有隐藏内容,请 开通VIP 后查看