maven手册及基本命令

1pom.xml常用配置
基本信息
modelVersion Maven模型的版本,对于Maven2和Maven3来说,它只能是4.0.0
groupId 项目组id,一般由三部分组成,每个部分之间以".“分隔。第一部分是项目用途,比如用于商业的就是"com”,用于非营利性组织的就是"org";第二部分是公司名,比如"tengxun"、“baidu”、“alibaba”;第三部分是你的项目名。 groupId、artifactId、version三个元素生成了一个Maven项目的基本坐标,在众多的maven项目中可以唯一定位到某一个项目。坐标也决定着将来项目在仓库中的路径及名称。
artifactId 可以认为是Maven构建的项目id,如果你的项目中有子项目,就可以使用"项目名-子项目名"的命名方式。
version 项目的版本号。如果项目还在开发中,是不稳定版本,通常在版本后带-SNAPSHOT
packaging 项目打包的类型,可以使jar、war、rar、ear、pom,默认是jar
依赖
Dependencies、dependency和dependencyManagement Maven的一个重要作用就是管理jar包,为了一个项目可以构建或运行,项目中不可避免的,会依赖很多其他的jar包,在Maven中,这些jar就被称为依赖,使用标签dependency来配置。而这种依赖的配置正是通过坐标来定位的,由此我们也不难看出,maven把所有的jar包也都视为项目存在了。而dependencyManagement是用来声明依赖,并不会实际引入依赖,这个在maven的继承中会发挥作用。
配置属性
properties properties是用来定义一些配置属性的,例如project.build.sourceEncoding(项目构建源码编码方式),可以设置为UTF-8,防止中文乱码,也可定义相关构建版本号,便于日后统一升级。
构建
build build表示与构建相关的配置,比如build下有finalName,表示的就是最终构建之后的名称。
继承
parent 在Maven中,如果多个模块都需要声明相同的配置,例如:groupId、version、有相同的依赖、或者相同的组件配置等,也有类似Java的继承机制,用parent声明要继承的父工程的pom配置。
聚合
modules 在Maven的多模块开发中,为了统一构建整个项目的所有模块,可以提供一个额外的模块,该模块打包方式为pom,并且在其中使用modules聚合的其它模块,这样通过本模块就可以一键自动识别模块间的依赖关系来构建所有模块,叫Maven的聚合。
分发
distributionManagement mvn install 会将项目生成的构件安装到本地Maven仓库,mvn deploy 用来将项目生成的构件分发到远程Maven仓库。distributionManagement来指定Maven分发构件的位置。
仓库
repositories 配置maven使用的远程仓库

2Maven的生命周期
清洁(clean)生命周期
预清洁(pre-clean) 执行实际项目清理之前所需的流程
清洁(clean) 删除以前构建生成的所有文件
后清洁(post-clean) 执行完成项目清理所需的流程

默认(default)生命周期
验证(validate) 验证项目是正确的,所有必要的信息可用。
初始化(initialize) 初始化构建状态,例如设置属性或创建目录。
产生来源(generate-sources) 生成包含在编译中的任何源代码。
流程源(process-sources) 处理源代码,例如过滤任何值。
生成资源(generate-resources) 生成包含在包中的资源。
流程资源(process-resources) 将资源复制并处理到目标目录中,准备打包。
编译(compile) 编译项目的源代码。
工艺类(process-classes) 从编译后处理生成的文件,例如对Java类进行字节码增强。
生成测试来源(generate-test-sources) 生成包含在编译中的任何测试源代码。
流程测试来源(process-test-sources) 处理测试源代码,例如过滤任何值。
生成测试资源(generate-test-resources) 创建测试资源。
流程测试资源(process-test-resources) 将资源复制并处理到测试目标目录中。
测试编译(test-compile) 将测试源代码编译到测试目标目录中
流程检验类(process-test-classes) 从测试编译中处理生成的文件,例如对Java类进行字节码增强。对于Maven 2.0.5及以上版本。
测试(test) 使用合适的单元测试框架运行测试。这些测试不应该要求代码被打包或部署。
制备包(prepare-package) 在实际包装之前,执行必要的准备包装的操作。这通常会导致打包的处理版本的包。(Maven 2.1及以上)
打包(package) 采取编译的代码,并以其可分发的格式(如JAR)进行打包。
预集成测试(pre-integration-test) 在执行集成测试之前执行所需的操作。这可能涉及诸如设置所需环境等。
集成测试(integration-test) 如果需要,可以将该包过程并部署到可以运行集成测试的环境中。
整合后的测试(post-integration-test) 执行集成测试后执行所需的操作。这可能包括清理环境。
校验(verify) 运行任何检查以验证包装是否有效并符合质量标准。
安装(install) 将软件包安装到本地存储库中,以作为本地其他项目的依赖关系。
部署(deploy) 在集成或发布环境中完成,将最终软件包复制到远程存储库,以与其他开发人员和项目共享。

站点(site)生命周期
预网站(pre-site) 在实际的项目现场生成之前执行所需的进程
网站(site) 生成项目的站点文档
后网站(post-site) 执行完成站点生成所需的进程,并准备站点部署
网站部署(site-deploy) 将生成的站点文档部署到指定的Web服务器

3Maven的常用命令
mvn clean 清理(会删除原来编译和测试的目录,即target目录,但是已经install到仓库里的包不会删除)。
mvn compile 编译主程序(会在当前目录下生成一个target,里边存放编译主程序之后生成的字节码文件)。
mvn test-compile 编译测试程序(会在当前目录下生成一个target,里边存放编译测试程序之后生成的字节码文件)。

mvn test 测试(会生成一个目录surefire-reports,保存测试结果)。
mvn package 打包主程序(会编译、编译测试、测试、并且按照pom.xml配置把主程序打包生成jar包或者war包)。
mvn install 安装主程序(会把本工程打包,并且按照本工程的坐标保存到本地仓库中)。
mvn deploy 部署主程序(会把本工程打包,按照本工程的坐标保存到本地库中,并且还会保存到私服仓库中。可以参考私服课程中maven的settings.xml和pom.xml设置。还会自动把项目部署到web容器中)。
mvn site 生成项目的站点文档

你可能感兴趣的:(java基础)