Maven 使用

一、初始 Maven(了解)

1、项目遇到的问题

  • 构建:编译代码,运行测试,打包,部署应用,运行服务器等;
  • 依赖:项目依赖大量的第三方包,第三方包又依赖另外的包,对依赖包的管理非常麻烦。

2、Maven 定义和作用

  • Maven 翻译为“知识的积累”,“专家”,“行家”,是一个跨平台的项目管理工具;
  • Maven 主要用作基于 Java 平台的项目(Maven 本身也是 Java 编写的)的构建、依赖包管理和项目信息管理;
  • Maven 能提供一种项目的配置,配置好的项目,只需要运行一条简单的命令,就能完成重复的,繁琐的构建动作;
  • Maven 能提供一种项目的依赖配置,配置好的项目,Maven 能自动的从 Maven 的中央仓库中帮我们下载并管理项目依赖的 jar 包,并且还能自动的管理这些 jar 包依赖的其他 jar 包;
  • Maven 提供了一种标准的项目目录结构,测试命名规则等项目的最佳实践方案,统一了不同项目的学习成本(约定大于配置)。

二、Maven 安装(掌握)

1、检查 JDK 的版本

因为 Maven 不同的版本对 JDK 是有要求的,具体请看官网。
在命令行输入 java -version,查询安装 JDK 是否正确并查询安装的版本。若没有配置好的话,按照一下步骤配置好:

  • 添加 JAVA_HOME,需要指向 JDK 安装目录;
  • 添加 PATH,添加 %JAVA_HOME%\bin。

2、安装 Maven

把 apache-maven-x.x.x-bin.zip 解压到目录中(目录路径最好不要有空格和中文)。

3、配置环境变量

  • 配置环境变量,MAVEN_HOME,指向 maven 的根目录;
  • 配置环境变量 Path,将 %MAVEN_HOME%\bin 追加到 Path 中。

3.1、Win10 配置

Maven 使用_第1张图片

Maven 使用_第2张图片

4、验证 Maven 安装

打开命令行窗口,输入入 mvn –v 执行,若执行类似如下效果即代表安装成功。

Maven 使用_第3张图片

三、Maven Hello World(了解)

Maven 使用_第4张图片

把事先准备好的 Maven 项目,在命令行下输入命令试下:

  • mvn compile:编译
  • mvn clean:清除
  • mvn test:测试
  • mvn package:打包
  • mvn install:打包,本地仓库也放一份

四、Maven 设置(掌握)

1、本地仓库

运行过 Maven 命令才会在你的用户目录生成一个 .m2 目录,该目录下有个目录名 repository,这个就是所谓的本地仓库,主要存放是一些下载的 jar 文件。

本地仓库默认位置在用户目录/.m2/repository,本地仓库不建议在系统盘,最佳实践:

  • 将 Maven 根目录的 conf/settings.xml 拷贝到 .m2 中,作为个人 Maven 配置文件;

    maven根目录下拷贝settings.xml文件内容相对多,看不懂, 可以拷贝

    day02 Maven\课堂资料\配置和仓库.m2\settings.xml

  • 在 settings.xml 文件中 修改本地仓库的位置。


<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>
settings>

2、配置中央仓库镜像

在有网情况下,官方中央仓库服务器在国外,所以很大可能出现下载失败的问题,所以我们配置一个中央仓库的镜像来降低下载失败的概率。


<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>alimavenid>
            <name>aliyun mavenname>
            <url>http://maven.aliyun.com/nexus/content/groups/public/url>
            <mirrorOf>centralmirrorOf>
        mirror>
    mirrors>
settings>

五、IDEA 中 Maven 的配置(掌握)

配置安装的 Maven,设置 setttings.xml 和本地仓库。

Maven 使用_第5张图片

六、搭建基于 Maven 构建的 JavaSE 项目(掌握)

1、创建项目

1.1、选择建的是 Maven 项目

Maven 使用_第6张图片

确定后之后点击 Next。

1.2、填写对应项目信息

Maven 使用_第7张图片

填完之后点击 Next。

1.3、确定项目存储位置

Maven 使用_第8张图片

确定完之后点击 Finish,之后工具会打开解析项目,要等一会儿。

2、pom.xml 文件

用于填写项目信息,打包方式,添加依赖及插件等。


<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.0modelVersion>

    <groupId>cn.wolfcodegroupId>
    <artifactId>maven-seartifactId>
    <version>1.0.0version>

project>

3、添加依赖

3.1、利用索引添加依赖

所谓建索引,就对本地仓库的依赖建立索引,若本地仓库存在 10 个依赖,那么在添加的时候可以搜索得出来,很方便在 pom.xml 添加。但注意搜索得出来是本地仓库已有的前提下。而这个索引在 IDEA 开发工具会自动建好,直接使用即可。

3.1.1、添加 dependencies 元素

Maven 使用_第9张图片

3.1.2、添加 dependency 元素

Maven 使用_第10张图片

3.1.3、填选依赖名称

Maven 使用_第11张图片

3.1.4、选择依赖的版本

Maven 使用_第12张图片

3.1.5、填写依赖的作用域

Maven 使用_第13张图片

3.1.6、让工具自动解析修改的内容

在这里插入图片描述

3.1.7、验证依赖添加成功

Maven 使用_第14张图片

3.2、网站搜索拷贝添加依赖

搜索依赖的网站。

3.2.1、在搜索栏中输入要添加的依赖

Maven 使用_第15张图片

3.2.2、选择所要的依赖和其版本

Maven 使用_第16张图片

Maven 使用_第17张图片

3.2.3、拷贝对应配置到 pom.xml 中

Maven 使用_第18张图片

4、使用 Maven 命令

在 Maven Projects 窗口,双击对应命令即可:

Maven 使用_第19张图片

七、搭建基于 Maven 构建的 JavaWeb 项目(掌握)

1、创建项目

1.1、选择建的是 Maven 项目

Maven 使用_第20张图片

确定后之后点击 Next。

1.2、填写对应项目信息

Maven 使用_第21张图片

填完之后点击 Next。

1.3、确定项目存储位置

Maven 使用_第22张图片

确定完之后点击 Finish,之后工具会打开解析项目,要等一会儿。

1.4、修改项目打包方式

在 pom.xml 修改:


<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.0modelVersion>

    <groupId>cn.wolfcodegroupId>
    <artifactId>maven-webartifactId>
    <version>1.0.0version>
    
    <packaging>warpackaging>
project>

2、添加 web.xml

自己手动在项目的 main 目录下建 webapp/WEB-INF/web.xml 文件,拷贝如下内容:

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
	version="3.0">
web-app>

3、修改项目编译运行版本

在 pom.xml 配置如下:

<properties>
    <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
    <maven.compiler.source>11maven.compiler.source>
    <maven.compiler.target>11maven.compiler.target>
properties>

4、添加依赖

在 pom.xml 文件添加如下依赖:

<dependencies>
    
    <dependency>
        <groupId>javax.servletgroupId>
        <artifactId>javax.servlet-apiartifactId>
        <version>3.0.1version>
        
        <scope>providedscope>
    dependency>
dependencies>

5、编写 Servlet 与 JSP

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setAttribute("msg", "你好 Maven");
        req.getRequestDispatcher("/WEB-INF/a.jsp").forward(req, resp);
    }
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Maven


    ${msg}


6、配置 Tomcat 插件

在 pom.xml 添加如下插件:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.tomcat.mavengroupId>
            <artifactId>tomcat7-maven-pluginartifactId>
            <version>2.1version>
            <configuration>
                <port>80port> 
                <path>/path> 
                <uriEncoding>UTF-8uriEncoding> 
            configuration>
        plugin>
    plugins>
build>

7、启动项目

Maven 使用_第23张图片

八、概念解释(了解)

1、坐标

1.1、数学中的坐标

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

1.2、Maven 中的坐标

标识项目或者依赖在仓库中的位置。主要由下面构成:

  • groupId:项目名称,一般使用公司或组织域名倒写,域名具有唯一性,区分不同公司;
  • artifactId:项目中 Maven 项目/模块名称,区分同一个公司的项目;
  • version:项目版本,区分同一个项目不同时期的特点。

2、依赖

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

2.1、scope

Maven 在编译,测试,运行的时候,各需要一套 classpath(比如编译的时候会有编译的 classpath,测试的时候会有测试的 classpath)。scope 表明该依赖的项目和三个 classpath 的关系,即表示依赖什么阶段起作用,什么阶段不起作用。

scope 主要可选值:

  • compile:默认,适用于所有阶段,会随着项目一起发布,在编译,测试,运行时都有效;
  • provided:编译和测试阶段使用;典型的如 servlet-api.jar,打包时不需要,容器来提供;
  • runtime:测试和运行阶段使用,用于接口和实现分离,典型的如 jdbc 具体驱动实现;
  • test:测试阶段使用,不会随项目发布,如 junit。

Maven 使用_第24张图片

2.2、传递性

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

你可能感兴趣的:(工具,maven,java)