一天让你学会使用maven工具


大数据学习路线,从零开始学大数据,学习不迷路

一、Maven简介

1、maven的主要功能:

1、改进项目的开发和管理

  1. maven可以管理jar包文件
  2. 自动下载jar和它的文档,源代码
  3. 管理jar包需要的依赖,a.jar需要b.jar,maven会自动下载b.jar
  4. 管理你需要的jar版本
  5. 帮你编译程序,把Java编译成class
  6. 帮你测试代码正不正确
  7. 帮你打包文件,形成jar文件,或者war文件
  8. 帮你部署项目

2、构建:项目的构建

      构建是面向过程的,就是一些步骤,完成项目代码的编译,测试,运行,打包,部署等等
      maven支持的构建有:
  • 清理:把之前项目编译的东西删除掉,为新的编译代码做准备。
  • 编译:把程序源代码编译成执行代码,Java–class 文件,编译是批量的,可以把很多的文件编译成class文件,而javac一次只能编译一个文件。
  • 测试:maven可以测试程序代码,验证你的功能是否正确,maven可以同时执行多个测试代码,同时测试很多功能。
  • 报告:生成测试结果的文件,测试有没有通过。
  • 打包:把你项目中所有的class文件,配置文件等所有的资源放进一个压缩文件中,这个压缩文件就是项目的结果文件。通常Java程序,压缩文件是jar扩展名的,对于web应用,压缩文件扩展名是.war
  • 安装:把5中生成的jar文件,war安装到本机仓库
  • 部署:把程序安装好可以执行

二、Maven的核心概念

  • POM: 一个文件, 名称是pom.xml,翻译过来叫做项目对象模型。maven把项目当作一个模型使用,控制maven构建项目的过程,管理jar依赖
  • 约定的目录结构: maven项目的目录和文件的位置都是规定的
  • 坐标:是一个唯一的字符串,用来表示资源
  • 依赖管理:管理你的项目可以使用jar文件
  • 仓库管理(了解):你的资源存放的位置
  • 生命周期(了解):maven工具构建项目的过程,就是生命周期
  • 插件和目标(了解):执行maven构建时用的工具就是插件
  • 继承
  • 聚合

1、maven工程约定目录结构,约定是大家都遵循的一个规则。

每一个maven项目在磁盘中都是一个文件,(项目-Hello)
Hello/    # 根目录,也就是工程名
---/src     # 源代码                                           
------/main                      #  放你主程序Java代码和配置文件
---------/java                   # 你的程序包和包中的Java文件  (主程序的Java源码)
---------/resources        #你的Java程序中要使用的配置文件   (主程序的配置文件)
 
------/test                      # 放测试程序代码和文件的
---------/java                   # 你的程序包和包中的Java文件   
---------/resources        #你的Java程序中要使用的配置文件  

---/pom.xml  # maven的核心文件(maven项目必须有)

2、mvn compile 编译 src/main目录下的所有Java文件的

  • 为什么要下载 —> maven 工具执行的操作需要很多插件(Java类–jar文件)来完成的
  • 下载什么东西了 —> jar文件–插件–插件是完成某些功能
  • 下载的东西放哪里了 —> 默认仓库(本机仓库):C:\Users\13518.m2\repository
  • 执行mvn compile,结果是在项目的根目录下生成target目录(结果目录),maven编译的Java程序,最后的class文件都在target目录中

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

3、仓库

(1)仓库是什么: 仓库是存放东西的,存放maven使用的jar 和我们使用的jar

  • maven使用的插件(各种jar)
  • 项目使用的jar(第三方工具)

(2) 仓库的分类

  • 本地仓库,就是个人计算机上的文件夹,存放各种jar
  • 远程仓库,在互联网上的,需要网络才能使用的仓库
    1、中央仓库:最权威的,所有开发人员都共享使用的一个集中的仓库
    http://repo.maven.apache.org :中央仓库的地址
    2、中央仓库的镜像:就是中央仓库的备份,在各大洲,重要的城市都是镜像
    3、私服:在公司内部, 在局域网中使用,不是对外使用的。

(3) 仓库的使用,maven仓库的使用不需要人为参与

   开发人员需要使用mysql驱动---->maven首先查本地仓库 ---->私服---->镜像---->中央仓库 

4、pom:项目对象模型,是一个pom.xml 文件

  • 坐标:唯一值,在互联网中唯一标识一个项目的
    公司域名的倒写
    自定义项目名称
    自定义版本号

https://mvnrepository.com/: 搜索使用的中央仓库使用groupId或artifactId作为搜索条件

  • packaging:打包后的压缩文件的扩展名,默认是jar,web应用是war
    packaging 可以不写,默认是jar

  • 依赖
    depandencies 和 depandecy
    你的项目中要使用的各种资源说明,比如我的项目要使用mysql驱动

<depandencies>
        <!--依赖   在Java代码中  import  -->
    <depandecy>
          <groupId>mysql</groupId>
          <artifactId> mysql-connector-java</artifactId>
          <version>  5.1.9</version>
    </depandecy>
</depandencies>
  • properties :设置属性
  • build : maven在进行项目的构建时,配置信息,例如指定编译Java代码使用的jdk的版本等等。

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

  • maven的生命周期:就是maven构建项目的过程:清理,编译,测试,报告,打包,安装,部署
  • maven的命令:maven独立使用,通过命令,完成maven的生命周期的执行。maven可以使用命令,完成项目的清理,编译,测试等。
  • maven的插件:maven命令执行时,真正完成功能的是插件,插件就是一些jar文件,一些类

(1)单元测试(测试方法):用的是junit,junit是一个专门测试的框架(工具)。
junit测试的内容:测试的是类中的方法,每一个方法都是独立测试的。方法是测试的基本单位。(单元)
maven借助单元测试,批量的测试你类中的方法是否符合预期的。
(2)使用步骤

  1. 加入依赖,在pom.xml中加入单元测试依赖
<!-- 单元测试-->
<depandencies>
    <depandecy>
          <groupId>junit</groupId>
          <artifactId> junit</artifactId>
          <version>4.11</version>
          <scope>test</scope>
    </depandecy>
</depandencies>
  1. 在maven项目的/src/test/java目录下,创建测试程序
    推荐的创建类和方法的提示:
    1.测试类的名称 是Test + 你要测试的类名
    2.测试的方法名称 是:Test + 方法名称
    在这里插入图片描述
  2. mvn compile
    编译main/java/目录下的java为class文件,同时把class拷贝到target/calsses目录下面
    把main/resources目录下的所有文件 都拷贝到target/class 目录下

用 mvn test-compile 命令把测试文件中的Java文件编译成class文件,并测试方法是否成功

在这里插入图片描述


三、Maven在IDEA的应用

1、在idea中配置maven

在这里插入图片描述

2、使用模板创建项目

  1. maven-archetype-quickstart:普通的Java项目
  2. maven-archetype-webapp:web工程

在这里插入图片描述


四、依赖管理

1、依赖的范围:使用scope表示

在这里插入图片描述
scope 的值有 compile test,provide ,默认是compile
scope:表示依赖使用的范围,也就是在maven构建项目中的那些阶段起作用。
maven构建项目 清理,编译,测试,打包,安装,部署 过程(阶段)

     junit 依赖的范围是  test    (只在测试阶段起作用)
             <depandecy>
                  <groupId>junit</groupId>
                  <artifactId> junit</artifactId>
                  <version>4.11</version>
                  <scope>test</scope>
             </depandecy>

依赖范围:

  • compile:默认,在构造的编译,测试,打包,部署需要
  • test:只在测试阶段需要
  • provided:在部署时,有服务器提供,项目本身不需要自带

五、Maven常用设置

maven常用操作

1、 . maven的属性设置

   <properties>设置maven的常用属性

2. maven的全局变量

 自定义属性:1.在  <properties>里自定义标签声明变量,(标签名就是变量名)

自定义全局变量一般是定义 -----依赖的版本号,当你的项目中要使用多个相同的版本号,先使用全局变量,再使用 ${变量名}

3. 资源插件

   <build>
	 </resources> 
	 <resource>
 	 <directory>src/main/resources</directory> <!-  所在的目录 ->
	 <includes> <!- 包括目录下的.properties , .xml文件都会扫描到->
		<include>** /.properties</include>
		<include>**/ .xml</include> 
	 </includes>
  	   <!- 选项false不启用过滤器,*.properties 已经起到过滤作用->
		<filtering>false</filtering>
	 </resource>
	</resources>
   </build>

作用:mybatis课程中会用到这个作用

  1. 默认没有使用resources的时候,maven编译代码时,会把src/main/resource目录中的文件拷贝到target/classes目录中。对于src/main/java目录下的非Java文件不处理,不拷贝到target/classes目录
  2. 我们的程序有需要把一些文件放在src/main/java 目录中,当我执行Java程序时,需要用到src/main/java目录中的文件,需要告诉maven在 mvn compile src/ main/classes 目录下的文件时,需要把一些文件一同拷贝到target/classes目录中,此时需要在中加入
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海码儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值