EddieGuo的技术专栏 A Java Beginner

Maven初学笔记

2018-08-28

阅读:


Maven学习笔记整理

(一)Maven的作用

  1. Maven是由Java代码编写的 项目管理及自动构建工具 适合于一个团队对项目进行管理和版本的迭代,如果项目 非常大则不适合使用包来划分模块,改为每一个模块一个工程,使用Maven将其拆分,以区分版本号和不同模块组件。

  2. 在以往的web项目中,所需要的jar包都需要手动导入到WEB-INF/lib目录下,还要将jar包添加到类路径下,浪费时间还占用存储空间。 Maven可以通过POM.XML 项目对象模型(Project Object Model缩写:POM) 文件从仓库中引用需要的jar包,并不需要真正的把jar包复 制到项目中。

  3. 在一个项目中不同的开发人员所使用的jar包可能版本不一致,导致项目在不同服务器上运行结果不一样。 Maven可以规范 化每个人的jar包版本,因为Maven将知名框架和第三方工具的jar存在中央仓库中,所以开发人员通过maven取出来的jar包也是规 范可靠的。

  4. 有时不同的jar包之间存在互相依赖关系,例如spring框架中spring-beans.jar,spring-aop.jar,spring-context.jar等 都需要spring-core.jar的支持,但是开发人员无法完全了解各个jar包之间的依赖关系。 Maven会将被依赖的jar包自动导入到仓库中,以供 开发人员使用,极大减少了学习的成本。

(二)Maven的安装配置

网上有很多教程,下面是我参考的一个博客的教程 在这里

(三)Maven的核心概念

  • Maven作为规范化的管理工具自然少不了规范化的目录结构,刚开始接触Maven的时候建议手动搭建目录结构以此来熟悉Maven的概念 目录如下 Maven目录结构

  • POM.xml文件Maven项目中不可或缺的核心文件,构建项目过程中的所有设置都在这个文件中进行配置 包括项目的名称 <groupid> ,模块 <artifactid> ,版本 <version> ,jar包依赖<dependency>

  • 常用的Maven命令

    1. mvn -v 获取当前maven的版本
    2. mvn compile 编译java文件
    3. mvn test 测试,并生成测试报告
    4. mvn clean 删除旧的class文件
    5. mvn package 打包成为jar包,war包
    6. mvn install 将包放入到本地仓库中

tips:2~6阶段需要进入pom.xml所在的路径下才能执行

  • Maven的坐标,类似于数学中的坐标,maven通过三个值来定位某一个jar在仓库中的位置

    	<dependency>
       		<groupId>javax.servlet</groupId>
       		<artifactId>servlet-api</artifactId>
       		<version>2.5</version>
       		<scope>provided</scope>
       	</dependency>
    

以上代码定位了servle-api-2.5.jar的位置,Maven会沿着这个路径去找这个jar包如果本地仓库没有,则会到远程仓库中进行寻找并下载。

  • Maven的生命周期是由几个阶段构成的,他们的顺序无法被打乱,必须按照正确顺序来执行,每个生命周期中的具体任务是由插件来完成的
  • 生命周期
    1. compile编译阶段 java代码到后缀为.class文件
    2. test测试阶段 使用单元测试测试编译的代码
    3. package打包阶段 将编译的代码打包成jar,war等格式
    4. install安装阶段 将打好的包保存到本地仓库(一般是C盘User文件夹下的 .m2 文件夹)此时其他maven项目可以引用此项目
    5. deploy部署阶段 将包复制到远程仓库和其他开发人员共享

tips:测试类不参与打包和部署 所以看不到测试类编译的.class文件 由于生命周期的限制如果进入对应项目pom.xml的路径后跳过某些周期直接执行后面的步骤,例: >mvn test Maven依旧会从第一步开始执行,这也表现出Maven的规范化 如下图 Maven生命周期顺序化执行 首先编译源代码,在编译test代码,再执行测试返回结果


下一篇 Yml文档语法

Comments

Content