Maven安装使用教程


前言

构建:编译代码,运行测试,打包,部署应用,运行服务器等;
依赖:在没有使用Maven之前,对于依赖(jar包)我们需要在各个平台各个地方进行jar包的下载,然后可能某些依赖(jar包)又会依赖其他的一个依赖(jar包),导致我们在初始构建项目时需要大量的时间去下载这些jar包导入项目中

一、Maven是什么?

Maven 翻译为"专家"、“内行”,是 Apache 下的一个纯 Java 开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。

Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。

Maven 也可被用于构建和管理各种项目,例如 C#,Ruby,Scala 和其他语言编写的项目。Maven 曾是 Jakarta 项目的子项目,现为由 Apache 软件基金会主持的独立 Apache 项目。

二、Maven 安装

1.检查 JDK 的版本

在这里插入图片描述

2.下载 Maven

通过 https://maven.apache.org/docs/history.html
查看 Required Java Version 对应的Maven版本,建议下载加粗的版本【此处选择3.6.3】
Java8以上的JDK版本使用Java7对应的Maven版本
在这里插入图片描述
在 https://archive.apache.org/dist/maven/maven-3/ 找到对应的版本
在这里插入图片描述
选择 binaries
source为源码包,需要的可以自行下载
在这里插入图片描述
根据系统选择下载
在这里插入图片描述

3.安装 Maven

找到对应的目录进行解压(Linux或者MacOS一般把资源解压到 /usr/local,Windows可以把所有跟Java相关的放到某个磁盘的 OpenSource 目录下便于管理),解压即安装完成
Linux解压命令【tar -zxvf apache-maven-3.6.3-bin.tar.gz -C /usr/local】

4.配置环境变量

Linux

vi /etc/profile
export M2_HOME=/usr/local/apache-maven-3.6.3
export M2=$M2_HOME/bin
export PATH=$M2:$PATH
Esc
:wq
source /etc/profile

MacOS

vi ~/.zshrc
export M2_HOME=/usr/local/apache-maven-3.6.3
export M2=$M2_HOME/bin
export PATH=$M2:$PATH
Esc
:wq
source ~/.zshrc

MacOS 如果终端类型是bash,把.zshrc改为.bash_profile
这里不再说明vi编辑器的使用方式,想要了解vi编辑器的同学可以看我另外一篇文章
https://blog.csdn.net/weixin_56878436/article/details/120026082

Windows
配置环境变量,MAVEN_HOME,指向 maven 的根目录;
配置环境变量 path,将 %MAVEN_HOME%\bin 追加到 path 中。
在这里插入图片描述
在这里插入图片描述

5.验证 Maven 安装

在cmd或者终端输入:mvn -v
在这里插入图片描述

三、Maven 设置

1.本地仓库

运行过 Maven 命令才会在你的用户目录生成一个 .m2 目录,该目录下有个目录名 repository,这个就是所谓的本地仓库,本地仓库的默认存放位置,可以先删除掉,主要存放是一些下载的 jar 文件。
如果没有运行过可以到/usr/local/apache-maven-3.6.3/conf/settings.xml拷贝到家目录/.m2
在这里插入图片描述
将settings.xml里面的文件内容改为以下内容
这里需要配置两个东西,忽略不配置也可以

  • 因为中央仓库是国外的,我们从中央仓库下载可能会比较慢,建议配置阿里仓库镜像
  • 本地仓库地址,也就是我们的jar包会下载到的一个位置。因为默认是家目录,Linux和MacOS可以注释不配置(只有一个盘符下载到哪里都一样的,直接注释掉或者删掉 <localRepository>你本地仓库的目录位置</localRepository> 使用默认即可),对于Windows来说默认家目录其实是C盘,大家都知道C盘是系统盘,都下载到C盘可能会导致系统盘太大影响电脑性能,建议改到OpenSource跟Java相关的文件夹中,例如:<localRepository>E:\Java\OpenSource\repository</localRepository>
<?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>你本地仓库的目录位置</localRepository>
    <mirrors>
        <!-- 阿里仓库镜像 -->
        <mirror>
            <id>alimaven</id>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <mirrorOf>central</mirrorOf>
        </mirror>
    </mirrors>
</settings>

四、IDEA 中 Maven 的配置

在这里插入图片描述

在这里插入图片描述

配置说明
Maven home path:Maven3.6.3对应下载的位置,一般不使用IDEA自带的Maven,因为IDEA内置的Maven可能存在问题,不然我们也不必大费周章去官网重新下载
User settings file:我们在配置第三步的时候在家目录的settings.xml文件中配置了阿里云镜像和本地仓库,因为IDEA默认去检查这个文件夹中的settings.xml文件,所以我们把settings.xml拷贝到家目录/.m2下,目的是为了不修改原来的settings文件,IDEA会优先读取家目录的settings.xml。当然也可以直接修改Maven中conf/settings.xml文件,并且把这个路径修改为Maven中conf/settings.xml,建议这种做法先对原本的settings.xml进行备份以免修改错误导致无法正常运行
Local repository:Windows在第三步的配置中修改了本地仓库下载路径,这里的配置让IDEA去这个路径找依赖,需要点击Override,修改为你下载本地仓库的路径,如:“E:/Java/OpenSource/repository”,让IDEA去“E:/Java/OpenSource/repository”路径下找依赖。如果没有修改本地仓库路径位置,这里无需修改

五、IDEA 中 构建 JavaSE 项目

1.创建项目

2.选择Maven

建议不打勾,不选择骨架,因为选不选择骨架创建的Maven项目都是残缺的,不是标准的Maven项目
如果需要选择骨架可以选择:maven-archetype-quickstart,如果选择了骨架第一次需要等待下载骨架,看网络速度大概10多到20分钟左右
在这里插入图片描述

3.填写对应内容

在这里插入图片描述
填写完信息后,点击 Finish 等待项目构建

4.pom.xml文件

用于填写项目信息,打包方式,添加依赖及插件等
在这里插入图片描述
我们需要在这个文件中添加依赖,比如说:我们加入一个 MySQL 的依赖
我们需要把依赖写在标签 dependenciesdependency 当中定义groupId,artifactId,version

<?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">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>demo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.21</version>
        </dependency>
    </dependencies>
</project>

对于IDEA 2020版来说,已经取消了自动导入所以我们添加完了以后需要点击按钮让他加载
在这里插入图片描述

  • 他默认就会去我们的本地仓库进行查找,如果能找到,就直接使用
  • 如果本地仓库没有找到,他就会去阿里云镜像中找到这个依赖进行下载到本地仓库

加载成功后,可以在标记的位置中查看到相关的依赖
在这里插入图片描述

5.依赖如何找呢?

https://mvnrepository.com/
在这里插入图片描述
比如说我们想要找MySQL的依赖,直接搜索MySQL
在这里插入图片描述
找到对应的版本,点进去,直接拷贝内容到 pom.xml 文件中,然后刷新让他加载,如果本地仓库没有他就会去阿里云镜像下载
在这里插入图片描述

6.常用 Maven 命令

在这里插入图片描述

六、IDEA 中 构建 JavaWeb 项目

1.创建项目

2.选择Maven

建议不打勾,不选择骨架,因为选不选择骨架创建的Maven项目都是残缺的,不是标准的Maven项目
如果需要选择骨架可以选择:maven-archetype-webapp,如果选择了骨架第一次需要等待下载骨架,看网络速度大概10多到20分钟左右
在这里插入图片描述

3.填写对应内容

填写完信息后,点击 Finish 等待项目构建

4.pom.xml

在这里插入图片描述
添加 Tomcat 插件

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.1</version>
            <configuration>
                <port>80</port> <!-- 端口 -->
                <path>/</path> <!-- 上下路径 -->
                <uriEncoding>UTF-8</uriEncoding> <!-- 针对 GET 方式乱码处理 -->
            </configuration>
        </plugin>
    </plugins>
</build>

5.添加Web.xml文件

第一步:
在这里插入图片描述
第二步:查看有没有Web相关的,如果没有点击上方加号添加一个Web
在这里插入图片描述
第三步:
设置标记webapp为web根目录,爆红双击点击ok即可
在这里插入图片描述
点击添加 web.xml
在这里插入图片描述
注意添加位置,可以拷贝刚刚创建的地址
/Users/zhouxucong/Desktop/Java/JavaWebDemo/src/main/webapp 需要在后面加上/WEB-INF/web.xml
在这里插入图片描述
点击 ok web项目的构建就完成了

如果大家觉得上面这种操作比较麻烦,可以手动创建

  1. 在src.main下创建一个package,名字叫webapp
    在这里插入图片描述

  2. 同样的方式创建一个package,名字叫WEB-INF

  3. 创建一个file,名字叫web.xml
    在这里插入图片描述

  4. 把下面配置拷贝到 web.xml 文件

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
             version="4.0">
    </web-app>
    

注意:使用这种方式包名和文件名字一定不能输错

基于Maven 构建的 JavaWeb 项目最终结构

在这里插入图片描述

七、概念解释

1.坐标

数学中的坐标
在空间中,使用 X、Y、Z 三个向量可以唯一的定位空间中的任意一个点。

Maven 中的坐标
标识项目或者依赖在仓库中的位置。主要由下面构成:
groupId:项目名称,一般使用公司或组织域名倒写,域名具有唯一性,区分不同公司;
artifactId:项目中 Maven 项目/模块名称,区分同一个公司的项目;
version:项目版本,区分同一个项目不同时期的特点。

2.依赖

配置项目所要依赖的 jar,在 pom.xml 使用 dependency 元素配置,通过坐标先从本地仓库找,若没有再从远程仓库找。

scope
Maven 在编译,测试,运行的时候,各需要一套 classpath(比如编译的时候会有编译的 classpath,测试的时候会有测试的 classpath)。scope 表明该依赖的项目和三个 classpath 的关系,即表示依赖什么阶段起作用,什么阶段不起作用。
scope 主要可选值:
compile:默认,适用于所有阶段,会随着项目一起发布,在编译,测试,运行时都有效;
provided:编译和测试阶段使用;典型的如 servlet-api.jar,打包时不需要,容器来提供;
runtime:测试和运行阶段使用,用于接口和实现分离,典型的如 jdbc 具体驱动实现;
test:测试阶段使用,不会随项目发布,如 junit。

3.传递性

Maven 的依赖是具有传递性的,比如 A -> B,B -> C,那么 A 间接的依赖于 C,这就是依赖的传递性,其中 A 对于 B 是第一直接依赖,B 对于 C 是第二直接依赖,C 为 A 的传递性依赖。依赖的传递性可以解决依赖繁琐的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值