Maven教程

发布于:2022-11-09 ⋅ 阅读:(14) ⋅ 点赞:(0) ⋅ 评论:(0)

有什么用?

  • 在javaweb开发中,我们需要使用各种 jar 包,每用到一种 jar 包,都需要我们手动去导入。

  • 如何能够让一个东西自动帮我们导入和配置这些jar包。

Maven 是一个项目架构管理工具,可以对 Java 项目进行构建、依赖管理,用来方便导入jar包。

在这里插入图片描述

maven工程不直接将jar包导入到工程,而是通过pom.xml文件添加依赖,这样避免jar包直接引入进来,而是在需要jar包的时候,通过pom.xml中的坐标到一个专门存放jar包仓库去找,再把这些jar包拿来运行。

Maven的核心思想:约定大于配置

  • 有约束,不要去违反。

Maven会规定好你该如何去编写我们的java代码,必须要按照这个规范来。

下载安装Maven

网盘链接:https://pan.baidu.com/s/1nPZn4lj87mM7AC8vzHM_RQ?pwd=1234
提取码:1234
里面还有一些jar包。
官网:https://maven.apache.org/

在这里插入图片描述
下载完成后,解压即可,路径不要有中文、空格、特殊符号。
在这里插入图片描述

  • bin目录就是他的执行文件
  • boot启动需要的一些选项,一些jar包
  • lib存放第三方的资源,一些jar包
  • conf就是他的一些配置,里面有个settings.xml文件
    在这里插入图片描述

在这里插入图片描述
<proxies> </proxies>配置了一些连接的端口信息
<mirrors> </mirrors>配置镜像

配置环境变量

高级系统设置–>环境变量

  • MAVEN_HOME,变量值是maven的安装位置D:\ProgramFiles\maven\apache-maven-3.6.0
  • M2_HOME,变量值就是maven的bin目录
  • 在系统中的Path中配置%MAVEN_HOME%\bin
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

确定 --> 按Win+R键,输入cmd --> mvn -v

在这里插入图片描述
这就代表环境配完了。

阿里云镜像

  • 镜像:mirrors
    • 作用:加速我们的下载
  • 国内建议使用阿里云镜像,可以百度搜一下maven 阿里云镜像
<mirror>
  <id>nexus-aliyun</id>
  <name>Nexus aliyun</name>
  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
  <mirrorOf>*,!jeecg,!jeecg.-snapshots</mirrorOf>       
</mirror>

在这里插入图片描述

本地仓库

建立一个本地仓库localRepository,maven本地仓库也可以不配置,如果不配置,默认本地仓库地址为C:\用户\Administrator.m2\repository

我的是

<localRepository>D:/ProgramFiles/maven/repository</localRepository>

可以看到仓库里面有一个个的包。

远程仓库

也就是说我本地仓库没有,就会去远程仓库去下载,可以理解为互联网仓库
在这里插入图片描述

中央仓库

maven软件内置的一个远程仓库,用于服务我们整个互联网的,他是由maven团队来进行维护的,主要包含了我们世界上面大部分比较主流的一些开源的框架一些jar包。互联网仓库没有就去中央仓库找

在IDE中使用Maven

  1. 启动IDE
  2. 创建一个Maven Web项目
    File -> New -> Project…
    在这里插入图片描述

勾不勾选Create from archetype都可以,勾选可以使用Maven的模板,选择org.apache.maven.archetypes:maven-archetype-webapp,可以看到底下的提示"A simple Java web application"一个简单的Java应用。
在这里插入图片描述

在这里插入图片描述
然后我们就发现,IDE能自动识别的原因是因为我设置了环境变量,否则是识别不了的。IDE也有自带的Maven,但是能配置的非常少。
在这里插入图片描述
到这里我们Maven项目就创建出来了。

右下角出现弹窗,Maven projects need to be imported意思是是否自动导入?选Enable Auto-Import 启动动导入,这样以后就不会老是弹出这个弹窗
在这里插入图片描述

目录结构

  • web.xml是web工程的主配置文件
  • index.jsp是首页

现在的目录结构并不是很完整,需要自己手动补齐

  • java目录是用来存放源文件的
    假如这个java图标是灰色的,我们需要把他变成
    源码文件夹,右键–>mark directory–>sources root

  • resources目录是用来存放配置文件 ,新建resources–>邮件–>mark directory–>resources root

在这里插入图片描述

在这里插入图片描述
可以运行一下Test试试
在这里插入图片描述

在pom.xml文件中添加坐标

从中央仓库获取Jar: https://mvnrepository.com/
进入网站,输入关键字进行搜索(例如我搜索:servlet),点击想要的版本

pom.xml文件

<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>javax.servlet-api</artifactId>
  <version>3.0.1</version>
</dependency>

在这里插入图片描述

没有爆红就是写对了,如果爆红了,说明Maven配置的有问题,你需要重新配置。

com.qibu.servlet下新建一个MyServlet类

package com.qibu.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/myServlet")
public class MyServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("myServlet...");
    }
}

部署项目

在这里插入图片描述
完成之后点击Apply --> OK

点击启动,如果报错javax.servlet包不存在可以看后面,浏览器输入http://localhost:8081/javaweb_maven_war/myServlet,后台打印myServlet…

至此完结撒花✿✿ヽ(°▽°)ノ✿

idea导入maven依赖出现xxx.jar包找不到

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

这个我也是搞了好久才知道,我用的是IntelliJ IDEA 2020.1 ,这个可能是这个版本IDEA的bug,设置的maven,它的依赖仓库repository只能为默认的位置,即:设置Maven里的Local repository路径必须是C:\Users\???\.m2\repository 这个默认的位置,不然就会报错找不到包。这个版本idea不会到外部的路径仓库下找包,就算你设置外部仓库也不行。

设置Maven跟本地Maven进行关联

File -> settings…
注意:Local repository 本地仓库的路径,IDEA 2020.1版本的一定要是默认的路径C:\Users\???\.m2\repository
在这里插入图片描述
在这里插入图片描述
点击重新导入所有Maven项目按钮,运行,这时候就可以看到项目可以运行了。