请添加图片描述

Maven核心概念

  • 💖Maven简介
  • ✨约定目录结构
  • ✨maven的使用方式
  • 💖POM文件
  • ✨坐标的概念
  • ✨依赖 dependency
  • ✨打包类型
  • 💖仓库概念
  • ✨修改本地仓库位置
  • ✨仓库的工作方式
  • ✨配置文件说明
  • ✨junit单元测试
  • ✨生命周期,插件和命令
  • ✨自定义配置插件
  • 💖Maven简介

    1、软件开发中的阶段

    需要分析:分析项目具体完成的功能,有什么要求,具体怎么实现。设计阶段:根据分析的结果,设计项目的使用什么技术,解决难点。开发阶段:编码实现功能,编译代码,自我测试。测试阶段:专业的测试人员,测整个项目的功能十分符合设计要求。出一个测试告。项目的打包,发布阶段:给用户安装项目。

    2、Maven能做什么

    1)项目的自动构建,帮助开发人员做项目代码的编译,测试,打包,安装,部署等工作。
    2)管理依赖(管理项目中使用的各种jar包)。
    依赖:项目中需要使用的其他资源,常见的是jar比如项目要使用mysgl驱动,我们就说项目依赖mysgl驱动。

    3、没有使用maven怎么管理依赖
    管理jar,需要从网络中单独下载某个jar,需要选择正确版本,手工处理jar文件之间的依赖。a.jar里面要使用b.jar的类。

    4、什么是maven

    maven是apache基金会的开源项目,使用java语法开发。Maven这个单词的本意是:专家,内行。读音是['meIv(e)n]或['mevn]。
    maven是项目的自动化构建工具,管理项目的依赖。

    ✨约定目录结构

    maven项目使用的大多人遵循的目录结构,叫做约定目录结构。一个maven项目是一个文件夹。
    比如项目叫做Hello

    ✨maven的使用方式

    ①maven可以独立使用:创建项目,编译代码,测试程序,打包,部署等等。
    ② maven和idea一起使用:通过idea借助maven,实现编码,测试,打包等等。

    💖POM文件

    POM:Project Object Model项目对象模型,maven把项目当做模型处理。操作这个模型就是操作项目。maven通过pom.xml文件实现项目的构建和依赖的管理。

    pom 文件:即 Project Object Model项目对象模型。 Maven把一个项目的结构和内 容抽象成一个模型,在xml文件中进行声明,以方便进行构建和描述,
    pom.xml是Maven的灵魂。所以,maven环境搭建好之后,所有的学习和操
    作都是关于pom.xml的。

    那么我们来看一下pom.xml文件是什么样的

    <?xml version="1.0" encoding="UTF-8"?>
            <!--project是跟标签,后面是约束文件-->
    <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">
    
      <!--pom模型的版本,就是4.0.0-->
      <modelVersion>4.0.0</modelVersion>
    
      <!--坐标-->
      <groupId>youfei1_v</groupId>
      <artifactId>ch01-Maven-j2se</artifactId>
      <version>1.0</version>
    
      <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
      </properties>
    
    </project>
    
    

    ✨坐标的概念

    坐标组成是groupid,artifiactld,version。坐标概念来自数学。

    坐标作用:确定资源的,是资源的唯一标识。在maven中,每个资源都有坐标。坐标值是唯一的。简称叫gav。

    拿servlet依赖举例

    		<!--servlet依赖-->
          <groupId>javax.servlet</groupId>
          <artifactId>javax.servlet-api</artifactId>
          <version>3.1.0</version> 
    

    groupid:组织名称,代码。公司,团体或者单位的标识。这个值常使用的公司域名的倒写。例如:学校的网站www.sanlian.com,groupId:com.sanlian
    如果项目规模比较大,也可以是域名倒写+大项目名称。
    例如:www.baidu.com , 无人车:com.baidu.appollo

    artifactid:项目名称,如果groupId中有项目,此时当前的值就是子项目名。项目名称是唯一的。

    version:版本,项目的版本号,使用的数字。三位组成。例如主版本号,次版本号小版本号,例如:5.2.5。
    注意:版本号中有-SNAPSHOT,表示快照,不是稳定的版本。

    项目使用gav:
    1.每个maven项目,都需要有一个自己的gav。
    2.管理依赖,需要使用其他的jar,也需要使用gav作为标识。

    ✨依赖 dependency

    依赖:项目中要使用的其他资源(jar)。
    需要使用maven表示依赖,管理依赖。通过使用dependency和gav一起完成依赖的使用。

    注意:需要在pom.xml文件中,使用dependencies和dependency,还有gav完成依赖的说明。

    使用依赖的格式这里拿junit依赖举例,标签中的指的是项目的公司,标签中指的是项目名称,标签中指的是项目的版本。

      <dependencies>
        <!--测试-->
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.11</version>
        </dependency>
      </dependencies>
    

    注意标签要放到标签的下面

    ✨打包类型

    标签:项目打包的类型,有jar,war,ear,pom等等,默认是jar。

    注意:标签的放置位置是这个项目的坐标下面

    例如:

    <!--坐标-->
      <groupId>youfei1_v</groupId>
      <artifactId>ch01-Maven-j2se</artifactId>
      <version>1.0</version>
      <packaging>jar</packaging>
    

    💖仓库概念

    仓库是存东西的,maven的仓库存放的是:
    1.maven工具自己的jar包。
    2.第三方的其他jar,比如项目中要使用mysql驱动。
    3.自己写的程序,可以打包为jar存放到仓库。

    ✨修改本地仓库位置

    本地仓库(本机仓库):位于你自己的计算机,它是磁盘中的某个目录
    本地仓库:默认路径,是你登录操作系统的账号的目录中/.m2/repository
    C:\Users\NING MEI.m2\repository

    修改本地仓库的位置:修改maven工具的配置文件(maven的安装路径\conf\setting.xml)步骤:
    1)创建一个目录,作为仓库使用。目录不要有中文和空格。目录不要太深。
    例如:D:\oppo
    2)修改setting.xml文件,指定到刚刚创建的目录,例如:D:\oppo

    实例演示:找到maven安装目录下的conf目录中的settings.xml文件,


    在这个文件里面增加这个标签,里面指定新的仓库地址

    ✨仓库的工作方式

    仓库的分类
    本地仓库, 就是你的个人计算机上的文件夹,存放各种jar。
    远程仓库,在互联网上的,使用网络才能使用的仓库。
    ①:中央仓库,最权威的,所有的开发人员都共享使用的一个集中的仓库,
    ②:中央仓库的镜像:就是中央仓库的备份,在各大洲,重要的城市都有镜像。
    ③:私服,在公司内部,在局域网中使用的,不是对外使用的。

    仓库的使用,maven仓库的使用不需要人为参与
    如果仓库中有这个jar包就会用,没有就会去互联网上下载,从网络下载的资源,最终会存到本地仓库一份, 当你下次在用的时候,直接从本地仓库首先获取资源。
    例如开发人员需要使用mysql驱动,maven首先查本地仓库—>私服—>镜像—>中央仓库。

    ✨配置文件说明

    例如:spring依赖和spring-aspects依赖,这些东西表示我们项目中要用到spring和spring-aspects jar包,由maven在仓库中找到这个jar包并使用它。

    <!--spring依赖-->
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context</artifactId>
          <version>5.2.5.RELEASE</version>
        </dependency>
    
        <!--spring-aspects依赖-->
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-aspects</artifactId>
          <version>5.2.5.RELEASE</version>
        </dependency>
    

    注意:执行命令要在项目的pom文件所在的位置执行命名。

    ✨junit单元测试

    单元测试(junit):
    junit是一个单元测试的工具,在java中经常使用。
    单元:在java中指的是方法。 一个方法就是一个单元,方法是测试的最小单位。
    作用:使用junit去测试方法是否完成了要求。开发人员自测。

    使用单元测试

      <dependencies>
        <!--测试-->
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.11</version>
        </dependency>
      </dependencies>
    

    在src/test/java目录中创建测试类文件。写测试代码,单元测试使用的建议:
    1.测试类的定义,名称一般是Test+要测试的类名称
    2.测试类它的包名和要测试的类包名一样。
    3.在类中定义方法,要测试代码。
    方法的定义:public方法,
    没有返回值
    方法名称自定义(建议Test+测试的方法名称)
    方法没有参数
    4在测试类中的方法,可以单独执行。测试类也可以单独执行
    5.在方法的上面加入@Test

    ✨生命周期,插件和命令

    maven的生命周期:项目构建的各个阶段。包括清理,编译,测试,报告,打包,安装,部署。
    插件:要完成构建项目的各个阶段,要使用maven的命令,执行命令的功能是通过插件完成的。插件就是jar,一些类。
    命令:执行maven功能是由命令发出的。比如mvn compile

    命令:
    ① mvn clean:清理命令,作用删除以前生成的数据,删除target目录。
    插件:maven-clean-plugin,版本是2.5。

    ②mvn compile:编译命令,执行的代码编译,把src/main/java目录中的java代码编译为class文件,同时把class文件拷贝到target/classes目录。这个目录classes是存放类文件的根目录(也叫做类路径, classpath)
    插件:maven-compiler-plugin版本3.1编译代码的插件
    maven-resources-plugin版本2.6资源插件,处理文件的。作用是把src/main/resources目录中的文件拷贝target/classes目录中。

    ③mvn test-compile:编译命令,编译src/test/java目录中的源文件,把生成的class拷贝到target/test-classes目录。同时把src/test/resources目录中的文件拷贝到test-clasess目录
    插件:maven-compiler-plugin版本31编译代码的插件
    maven-resources-plugin版本2.6资源插件,处理文件的

    ④mvn test:测试命令,作用执行test-classes目录的程序,测试src/main/java目录中的主程序代码是否符合要求。
    插件:maven-surefire-plugin版本2.12.4

    ⑤mvn package:打包,作用是把项目中的资源class文件和配置文件都放到一个床缩文件中,默认压缩文件是jar
    类型的。web应用是war类型,扩展是jar,war的。
    插件:maven-jar-plugin版本2.4执行打包处理。生成一个jar扩展的文件,放在target目录下,I
    打包的文件包含的是src/main目录中的所有的生成的class和配置文件和test无关。

    ⑥mvn install:把生成的打包的文件,安装到maven仓库。
    插件:maven-install-plugin版本2.4把生成的jar文件安装到本地仓库。

    注意:每执行一个命令,都会自动先执行前面的, 例如:执行第二个编译命令,它首先会自动执行清理命令,执行第三个编译test命令,它首先会自动执行第一个清理命令和第二个编译命令。

    ✨自定义配置插件

    在pom.xml文件中,build标签中,设置插件。
    例如设置构建项目相关内容

    注意:默认使用1.7版本的jdk 通过此方式 可以更改;标签和标签平级。

    物联沃分享整理
    物联沃-IOTWORD物联网 » Maven使用方法核心概念

    发表评论