Maven基础知识

来源:互联网 发布:达摩画像淘宝 编辑:程序博客网 时间:2024/05/21 17:56

Maven概述
Maven是一个项目管理和整合的工具,Maven为开发者提供了一套构建生命周期框架。Maven主要帮助开发者完成以下工作:构建、文档生成、报告、依赖、SCMS、发布、分发、邮件列表。

Maven工程源码文件、资源文件的默认配置

配置项 默认值 source code ${basedir}/src/main/java resources ${basedir}/src/main/resources Tests ${basedir}/src/test Complied byte code ${basedir}/target ${basedir}/target ${basedir}/target/classes

POM
pom(program object model)代表工程对象模型,它是使用Maven工作时的基本组件,是一个xml文件,被放在工程的根目录下:pom.xml,包含了关于工程和各种配置细节的信息,Maven使用这些信息构建工程;也包含了目标和插件。

每个工程只有一个pom文件:

  • 所有的POM文件需要project元素和三个必须的字段:groupId、artifactId、version
  • 在仓库中的工程标识为:groupId:artifactId:version
  • pom.xml的根元素是project

Maven– 构建生命周期
构建生命周期是一组阶段的序列,每个阶段定义了目标被执行的顺序。这里的阶段是生命周期的一部分。

一个典型的Maven构建生命周期是由以下阶段的序列组成的:

阶段 处理 描述 prepare-resources 资源拷贝 可以自定义需要拷贝的资源 compile 编译 完成源代码编译 package 打包 根据pom.xml中描述的打包配置创建jar/war包 install 安装 在本地/远程仓库中安装工程包

Maven有三个典型的生命周期:

  • clean:在进行真正的构建之前进行一些清理工作。
名称 描述 pre-clean 执行一些需要在clean之前完成的工作 clean 移除所有上一次构建生成的文件 post-clean 执行一些需要在clean之后立刻完成的工作

- default(or build):这是 Maven 的主要生命周期,被用于构建应用.

名称 描述 validate 检查工程配置是否正确,完成构建过程的所有必要信息是否能够获取到 initialize 初始化构建状态,例如设置属性 generate-sources 生成编译阶段需要包含的任何源码文件 process-sources 处理源代码,例如,过滤任何值(filter any value) generate-resources 生成工程包中需要包含的资源文件 process-resources 拷贝和处理资源文件到目的目录中,为打包阶段做准备 compile 编译工程源码 process-classes 处理编译生成的文件,例如 Java Class 字节码的加强和优化 generate-test-sources 生成编译阶段需要包含的任何测试源代码 process-test-sources 处理测试源代码,例如,过滤任何值(filter any values) test-compile 编译测试源代码到测试目的目录 process-test-classes 处理测试代码文件编译后生成的文件 test 使用适当的单元测试框架(例如JUnit)运行测试 prepare-package 在真正打包之前,为准备打包执行任何必要的操作 package 获取编译后的代码,并按照可发布的格式进行打包,例如 JAR、WAR 或者 EAR 文件 pre-integration-test 在集成测试执行之前,执行所需的操作。例如,设置所需的环境变量 integration-test 处理和部署必须的工程包到集成测试能够运行的环境中 post-integration-test 在集成测试被执行后执行必要的操作。例如,清理环境 verify 运行检查操作来验证工程包是有效的,并满足质量要求 install 安装工程包到本地仓库中,该仓库可以作为本地其他工程的依赖 deploy 拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程
  • site:Maven Site 插件一般用来创建新的报告文档、部署站点等。
名称 描述 pre-site 执行一些需要在生成站点文档之前完成的工作 site 生成项目的站点文档 post-site 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备 site-deploy 将生成的站点文档部署到特定的服务器上

构建配置文件
构建配置文件是一组配置的集合,用来设置或者覆盖Maven构建的默认配置。Profile 在 pom.xml 中使用 activeProfiles / profiles 元素指定,并且可以用很多方式触发。Profile 在构建时修改 POM,并且为变量设置不同的目标环境(例如,在开发、测试和产品环境中的数据库服务器路径)。

Profile 类型

类型 定义位置 Per Project 定义在工程 POM 文件 pom.xml 中 Per User 定义在 Maven 设置 xml 文件中 (%USER_HOME%/.m2/settings.xml) Global 定义在 Maven 全局配置 xml 文件中 (%M2_HOME%/conf/settings.xml)

Maven仓库
Maven仓库是一个位置,可以存储所有的工程jar文件、library jar文件、插件或任何其他的工程指定的文件。

Maven有三种类型:本地(local)、中央(central)、远程(remote)


Maven插件
Maven实际上是一个依赖于插件执行的框架,每个任务实际上是有插件完成的,Maven插件通常被用来:

  • 创建jar文件
  • 创建war文件
  • 编译代码文件
  • 代码单元测试
  • 创建工程文档
  • 创建工程报告

Maven插件类型:

类型 描述 Build plugins 在构建时执行,并在 pom.xml 的 元素中配置 Reporting plugins 在网站生成过程中执行,并在 pom.xml 的 元素中配置

Maven常用的插件列表

插件 描述 clean 构建之后清理目标文件;删除目标目录 compiler 编译java源文件 surefile 运行Junit单元测试,创建测试报告 jar 从当前工程中创建jar文件 war 从当前工程中创建war文件 javadoc 为工程生成javadoc antrun 从创建过程的任意一个阶段中运行一个ant任务的集合

创建工程
这里写图片描述
这里写图片描述
这里写图片描述


2 0