Maven 基础

109 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第11天,点击查看活动详情

什么是Maven

Maven比较正式的说法是:Maven 是一个项目管理工具,可以理解为一个依赖管理系统,也可以用来定义在生命周期阶段中插件目标的逻辑。

Maven 中文释义是:专家、内行。

Maven 能做什么

  1. 开发中项目需要引到用各种 jar 包,特别是项目随着时间而庞大,引用到的jar包越来越多,几十甚至上百个,在没有maven的时候,我们需要每个jar包都下载下来,然后挨个加入到项目依赖的lib中。并且过程中会不断出现依赖冲突的问题。
  2. java文件需要编译成class文件,加载到jvm中运行执行,而变成这一步可以在开发工具中完成,也可以由maven代劳
  3. maven可以很方便的完成单元测试的代码,然后一个个运行来检验代码质量
  4. 最后项目代码需要打包,其中包含了各种配置文件、各种资源文件 例如js、img等,maven可以帮助我们很方便的构建工程,管理jar包。

pom

maven主要通过项目中的 pom.xml 文件配置要引入的 jar 包,通过坐标到仓库中加载jar包到本地,再将项目与本地的jar文件关联。

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>5.0.0</version>
        </dependency>

maven生命周期

maven的生命周期包括:

  1. clean 生命周期
  2. default 生命周期
  3. site 生命周期

其中clean生命周期又包含了三个阶段:

  1. pre-clean:执行清理前需要完成的工作。
  2. clean:清理上一次构建过程中生成的文件,比如 class 文件等。
  3. post-clean:执行清理后需要完成的工作。

default 生命周期包含的核心部分:

  1. generate-resources:产生主代码中的资源在 classpath 中的包
  2. process-resources:将资源文件复制到 classpath 的对应包中
  3. compile:编译项目中的源代码
  4. generate-test-resources:产生测试中资源在 classpath 中的包
  5. process-test-resources:将测试资源复制到 classpath 中
  6. test-compile:编译测试代码
  7. test:运行测试case
  8. install:打包安装项目到本地依赖仓库中,以便供其他本地项目使用
  9. deploy:运行集成和发布环境,将最后产生的包文件发布到远程仓库中,可供其他项目引入使用。

site 生命周期主要是建立和发布项目站点。其生命周期主要包括:

  1. pre-site:执行生成站点之前的准备工作。
  2. site:生成站点文档。
  3. post-site:执行生成站之点后需要收尾的工作。
  4. site-deploy:将生成的站点发布到服务器上。