Maven个人学习笔记

目 录

  • Maven可以做什么?
  • 什么是构建?maven支持的构建有哪些?
  • maven的核心概念
  • maven工具的安装和配置
  • maven约定的目录结构
    • ★★★项目目录结构
    • mvn compile命令,编译src/main目录下的所有java文件
    • 仓库
    • maven生命周期,maven的命令,maven的插件
  • 在IDEA中设置maven
  • maven常用操作

Maven可以做什么?

自动下载jar和他的文档,源代码
管理jar直接的依赖,a.jar需要b.jar,maven会自动下载b.jar
管理你需要的jar版本
帮你编译程序,把java编译为class
帮你测试代码是否正确
帮你打包文件,形成jar文件,或者war文件
帮你部署项目

什么是构建?maven支持的构建有哪些?

构件是面向过程的,就是一些步骤,完成项目代码的编译,测试,运行,打包,部署等等

maven支持的构建包括:

  1. 清理,把之前的项目变异的东西删除掉,为新的编译代码做准备
  2. 编译,把程序源代码编译为执行代码,java-class文件
  3. 测试,maven可以执行测试程序代码,验证你的功能是否正确。
  4. 报告,生成测试结果的文件,测试通过没有
  5. 打包,把你的项目中所有的class文件,配置文件等所有资源放到一个压缩文件中
  6. 安装,把5中生成的文件jar,war安装到本机仓库
  7. 部署,把程序安装好,可以执行

maven的核心概念

  1. POM:一个文件pom.xml,pom翻译过来叫项目对象模型。maven把一个项目当做一个模型使用。
  2. 约定的目录结构:maven项目的目录和文件的位置都是有规定的
  3. 坐标:是一个唯一的字符串,用来表示资源的
  4. 依赖管理:管理你的项目中可以使用的jar文件
  5. 仓库管理:你的资源存放的位置
  6. 生命周期:maven工具构建项目的过程
  7. 插件和目标:执行maven构建的时候,用的工具是插件
  8. 继承
  9. 聚合

maven工具的安装和配置

  1. 从官网下载maven安装包
  2. 解压到一个英文路径的目录
  3. 配置环境变量
    在系统环境变量中,指定一个M2_HOME的名称,指定它的值是maven工具安装目录再把M2_HOME加入到Path之中,在所有路径之前加入 %M2_HOME%\bin;
  4. 验证,在新的命令行中,执行 mvn -v

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工具执行的操作需要很多插件(java类-jar文件)完成
下载什么了?
 jar文件-叫做插件-插件是为了完成某些功能
下载的东西存在哪?
 默认仓库位置(可以自定义仓库路径)
 C:\Users\用户名.m2\repository

执行 mvn compile 结果是在项目的根目录下生成target目录(结果目录)
maven编译的java程序,最后的class文件都放在target目录中

仓库

  1. 仓库是什么?
    仓库是存放东西的,存放maven使用的jar和我们项目使用的jar

  2. 仓库的分类:
    本地仓库,在我个人计算机上的一个文件夹,存放各种jar包
    远程仓库,在互联网上,使用网络才能使用的仓库
     中央仓库:https://repo.maven.apache.org
     中央仓库的镜像,中央仓库的备份(可使用阿里云)
     私服,私人服务器

  3. 仓库的使用
    maven仓库的使用不需要人为参与
    例如:开发人员需要使用mysql驱动—>maven首先查本地仓库—>私服—>镜像–>中央仓库

  4. 怎么修改本机存放资源的目录位置?(设置本机仓库位置)
    1.修改maven的配置文件,maven安装目录/conf/settings.xml
    先备份settings.xml
    2.修改指定你的目录(非中文)

  5. POM:项目对象模型,pom.xml是maven的核心
    ★★★坐标(gav):
     唯一值,在互联网中唯一标识一个项目的
    公司域名倒写
    自定义项目名称
    自定义版本号
    packaging:
    打包后压缩文件的扩展名,默认是jar,web应用是war
    ★★★依赖:
    dependencies和dependency 相当于java中的import,是项目中要使用的各种资源说明
    properties:
    设置属性
    build:
    maven在进行项目的构件时的配置信息
    scope:
    设置依赖范围:
    compile(清理、编译、测试、打包、安装时都会用到)
    test(测试时有效)
    provided(执行、测试时有效。在部署时,由服务器提供,项目本身不需要自带)

例如:

  
  <groupId>org.examplegroupId>
  <artifactId>03-javaweb-mavenartifactId>
  <version>1.0-SNAPSHOTversion>
  <packaging>warpackaging>
  
 <properties>
    <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
    <maven.compiler.source>1.8maven.compiler.source>
    <maven.compiler.target>1.8maven.compiler.target>
  properties>

  <dependencies>
  	
    <dependency>
      <groupId>junitgroupId>
      <artifactId>junitartifactId>
      <version>4.11version>
      <scope>testscope>
    dependency>
    
    <dependency>
      <groupId>javax.servletgroupId>
      <artifactId>javax.servlet-apiartifactId>
      <version>3.1.0version>
      <scope>providedscope>
    dependency>
    
    <dependency>
    <groupId>javax.servlet.jspgroupId>
    <artifactId>jsp-apiartifactId>
    <version>2.1version>
    <scope>providedscope>
    dependency>
  dependencies>

maven生命周期,maven的命令,maven的插件

  1. maven的生命周期:
    就是maven构建项目的过程,清理,编译,测试,报告,打包,安装,部署

  2. maven的命令:
    maven独立使用,通过命令完成maven的声明周期的执行
    常用命令:
    mvn clean 清理(删除原来编译和测试的目录,即target目录)
    mvn compile 编译主程序(会在当前目录下生成一个target,存放编译主程序后的class文件)
    mvn test-compile 编译测试程序(会在当前目录下生成一个target,存放编译测试程序后的class文件)
    mvn test 可以进行单元测试(使用junit测试 src/main/java目录中的程序是否符合要求)
    mvn package 打包(把程序中src/main/下面的class和resources中的配置文件放入到压缩包中)
    mvn install 安装(把jar,war安装到本机的仓库中)

  3. maven的插件:
    maven命令执行时,真正完成功能的是插件,插件就是一些jar文件

     例如:
     单元测试(测试方法):用的是junit,junit是一个专门测试的框架(工具)
     junit测试的内容:测试的是类中的方法,每个方法都是独立测试的
    
     maven借助单元测试,批量测试类中大量方法是否符合预期
    
     使用步骤:
     加入依赖,在pom.xml加入单元测试依赖
     在maven项目中的src/test/java目录下,创建测试程序
     	推荐提示:
     	测试类:Test+类名
     	测试方法(public;无返回值;方法上要加注解):Test+方法名
    

在IDEA中设置maven

  1. IDEA中内置有Maven,也可手动配置Maven
    配置入口(当前项目):file–settings–Build–Build Tools–Maven–>配置根目录、配置文件、本机仓库
    配置入口(新项目):New Project settings–Build–Build Tools–Maven–>配置根目录、配置文件、本机仓库
    Maven个人学习笔记_第1张图片
    可以在:file–settings–Build–Build Tools–Maven–>Runner下VM Option上填写:-DarchetypeCatalog=internal(不用从外部网站上下载模版,从本机上获取)

    可以在:file–settings–Build–Build Tools–Maven
    –>JRE上选择:使用的JDK版本
    Maven个人学习笔记_第2张图片

  2. Maven模版创建项目
    maven-archetype-quickstart:普通的java项目
    maven-archetype-webapp:web项目

maven常用操作

  1. maven的属性设置
    设置maven的常用属性

  2. maven的全局变量
    自定义的属性
    在pom.xml文件中的中,通过自定义标签声明变量
    在pom.xml文件中的其他位置使用${标签名}使用变量的值
    自定义全局变量一般是定义依赖的版本号

  3. 资源插件

你可能感兴趣的:(Maven个人学习笔记)