Maven入门学习01 | 认识maven

105 阅读4分钟

Maven了解

  • 使用Maven的好处:

    • 管理jar文件,自动下载jar和相应的文档、源代码
    • 管理jar之间的依赖
    • 帮我们编译程序,把java编译成class
    • 帮我们打包文件,形成jar文件,或者war文件
    • 帮我们部署项目
    • 自动进行配置,节省时间
  • 项目的构建

    • 构建是面向过程的,就是有一些步骤,完成项目代码的编译、测试,运行,打包,部署等等
    • Maven支持的构建包括
      • 清理:把之前项目编译的内容删除,为新的编译代码做准备。
      • 编译:把程序源代码编译为执行代码,java-class文件,批量的,Maven可以同时把成千上百的文件编译为class
      • 测试:Maven可以执行测试程序代码,验证功能是否正确。可以同时执行多个测试代码,测试多个功能。
      • 报告:生成测试结果的文件,测试是否通过。
      • 打包:把项目中的所有class文件,配置文件等所有的资源放到一个压缩文件中,这个压缩文件就是项目的结果文件,通常是java程序,压缩文件是jar扩展名。对于web应用,压缩文件的扩展名是.war
      • 安装:把jar,war文件安装到本地仓库
      • 部署,把程序安装好可以执行。
  • Maven的核心概念

    • POM:一个文件,为pom.xml,翻译成项目对象模型。Maven把一个项目当成一个模型来用,控制Maven构建项目的过程,管理jar依赖。
    • 约定的目录结构:Maven项目的目录和位置都是规定的。
    • 坐标:是一个唯一的字符串,用来表示资源的。
    • 依赖管理:管理项目中的jar文件
    • 仓库管理:资源存放位置
    • 生命周期:Maven工具构建项目的过程,记为生命周期。

Maven工具的安装和配置

  • 官网下载安装包,解压到Maven文件夹中
  • 配置环境变量:略

Maven约定的目录结构

  • 每一个Maven项目在磁盘中都是一个文件夹(项目-Hello)
    • Hello/
      ---/src
      ------/main #主程序java代码和配置文件
      ---------/java #程序包和包中的java文件
      ---------/resources #java程序中要使用的配置文件 ------/test:#放测试程序代码和文件
      ---------/java #测试的java文件
      ---------/resources #测试的java配置文件
      ---/pom.xml #maven的核心文件
  • mvn compile 编译src/main目录下的所有java文件
    • 为什么要下载
      • Maven工具执行的操作需要很多插件
    • 下载的东西放在哪里了
      • 默认仓库:C:\Users\用户名.m2\repository
    • repo.maven.apache.org:中央仓库地址
    • 注意:执行mvn compile,结果是在项目的根目录下生成target目录(结果目录),maven编译的java程序,最后的class文件都放在target目录中。
    • 修改本地仓库的位置到D盘maven-place
    • <localRepository>D:maven-place</localRepository>
  • 仓库
    • 什么是仓库:仓库是存放东西的,存放maven使用的jar包和我们项目使用的jar
      • maven使用的插件(各种jar)
      • 项目使用的第三方工具
    • 仓库的分类:
      • 本地仓库,本机上的文件夹,存放各种jar
      • 远程仓库,在互联网上的,使用网络才能访问的仓库
        • 中央仓库,最权威的,所有开发者都使用的仓库。
        • 中央仓库的镜像,在互联网上,使用网络才能使用的仓库。
        • 私服,在公司内部,在局域网中使用的,不是对外使用的。
    • 仓库的使用,maven仓库的使用不需要人为参与。
      • 开发人员需要使用mysql驱动 --> maven实现查本地仓库 -> 私服 --> 中央仓库镜像 --> 中央仓库
    • pom:项目对象模型,是一个pom.xml文件
      • 坐标
        • groupId:
          • 域名倒写。例如com.baidu
          • 域名倒写+项目名。例如com.baidu.apple
        • artifactId
          • 项目名称,模块名称,对应groupId中的子项目
        • version
          • 版本号
             <groupId>公司域名的倒写</groupId>  
             <artifactId>>自定义的项目名称</artifactId> 
             <version>版本号</version>
          
      • packaging:打包后压缩文件的扩张名,默认是jar,web应用是war,packaging 可以不写,默认是jar
      • 依赖:dependencies和dependency,相当于是java中的import,项目中要使用各种的资源说明,比如使用mysql
      • properties:设置属性
      • build:maven在进行项目构建时。配置信息。
  • 单元测试:使用junit,junit是一个专门测试的框架(工具)。
    • junit测试的内容:测试的是类中的方法,每一个方法都是独立测试的。方法是测试的基本单位。
    • maven借助单元测试,批量的测试类中的大量方法是否复合预期
    • 使用步骤:
      • 加入单元测试的依赖
      • 在maven项目的src/test/java目录下,创建测试程序。
        • 假如测试类HelloMaven,创建测试类TestHelloMaven
        @test
        public void testAdd(){
            测试HelloMaven的add方法是否正确
        }
        //其中testAdd叫做测试方法,它的定义规则
        //1.方法是public的,必须的
        //2.方法没有返回值,必须的
        //3.方法名称是自定义的,推荐是Test+方法名称
        // 4.在方法的上面加入@Test