maven 概述
- mvn 命令指定任何步骤,都会自动执行其之前的步骤
- mvn 是一个执行框架,具体执行由插件完成
maven 分三部分
- CleanLifecycle 清理
- pre-clean
- clean
- post-clean
- DefaultLifecycle 编译、测试、打包、部署
- validate 验证项目是否正确、信息是否可用
- generate-sources 生成需要包含在编译过程中的源代码
- process-sources 处理源代码,比如过滤一些值
- generate-resources 生成包含在打包过程中的资源文件
- process-resources 复制处理资源文件至目标目录
- compile 编译项目的源代码
- process-classes 处理编译生成文件如对类进行字节码增强
- generate-test-sources 生成测试源码
- process-test-sources 处理测试源码,比如过滤一些值
- generate-test-resources 生成测试需要的资源文件
- process-test-resources 处理测试资源文件至测试目录
- test-compile 编译测试源码至测试目标目录
- test 使用单元测试框架运行测试
- prepare-package 执行一些准备打包必要的操作
- package 将编译好的代码打包成可分发的格式
- pre-integration-test 在集成测试运行之前需要的动作
- integration-test 处理包并发布至集成测试环境
- post-integration-test 执行在集成测试运行后的动作
- verify 执行所有检查,验证包是有效的,符合质量规范
- install 安装包至本地仓库
- deploy 复制最终的包至远程仓库
- SiteLifecycle 生成报告
- pre-site 执行生成站点文档之前完成的工作
- site 生成项目的站点文档
- post-site 执行在生成站点文档之后完成的工作
- site-deploy 将生成的站点文档部署到特定的服务器上
maven 插件
- mvn [插件名]:[目标名]
- org.apache.maven.plugins 官方插件组ID(groupId)
- maven-compiler-plugin 编译插件ID(artifactId)
- maven-deploy-plugin 发布插件
- maven-install-plugin 安装插件
- maven-surefire-plugin 单元测试
- maven-source-plugin 源码测试
maven 命令
- mvn –version 显示版本信息
- mvn clean 清理项目生产的临时文件,一般是模块下的target目录
- mvn compile 编译模块下的src/main/java目录
- mvn package 打包工具模块下的target目录生成jar或war等
- mvn test 执行src/test/java/下junit的测试用例.
- mvn install 将打包的jar/war文件复制到你的本地仓库中
- mvn deploy 将打包的文件发布到远程仓库
- mvn site 生成项目相关信息的网站
- mvn eclipse:eclipse 将项目转化为Eclipse项目
- mvn dependency:tree 打印出项目的整个依赖树
- mvn archetype:generate 创建Maven的普通java项目
- mvn tomcat:run 在tomcat容器中运行web应用
- mvn jetty:run 调用Jetty插件的Run目标
- -D 传入属性参数
- -P 使用指定的Profile配置
- -e 显示maven运行出错的信息
- -o 离线执行命令,即不去远程仓库更新包
- -X 显示maven允许的debug信息
- -U 强制去远程更新snapshot的插件或依赖
maven 仓库配置 setting.xml
-
本地仓库地址 Nexus仓库管理器 xx/xx/ 默认home/.m2/repository -
覆盖项目pom中同名配置 包括激活、仓库、插件、属性 -
仓库镜像 唯一id 名称 镜像了哪些库 *所有 地址 -
设置远程仓库 一个仓库 唯一id 名称 地址 / 版本类型 是否使用 更新频率 验证失败后如何处理 -
插件库 类似4 -
是否与用户交互获取输入 默认true -
是否用plugin-registry.xml管理插件 -
是否使用离线模式 -
默认groupId -
代理配置 http://socket:// proxy.somewhere.com 8080 proxyuser somepassword *.google.com|ibiblio.org -
服务器配置 server001 my_login my_password ${usr.home}/.ssh/id_dsa some_passphrase 664 775 传输额外配置
maven 项目基础配置 pom.xml
-
4.0.0 maven 版本 -
项目组织ID 生成jar包路径 -
项目ID -
1.0.0-SNAPSHOT 版本号 -
打包机制 pom,jar, maven-plugin, ejb, war, ear, rar, par 默认jar -
副属构建 由副属插件来定义 如javadoc java sources 或依赖针对不同的JDK有不同包,指定包名 -
项目依赖 com.winner.trade trade-test 1.0.0-SNAPSHOT 依赖范围compile(编译范围)、 provided(已提供范围)、runtime(运行时范围)、 test(测试范围)、system(系统范围) false 是否可选 排除此库依赖库,防版本冲突 org.slf4j slf4j-api -
定义常量 UTF-8
maven 项目配置 pom.xml
-
生成文件名 -
目标目录 -
build 名 -
配置文件变量替换 如${spring.version} ../filter.properties -
资源配置 目标目录 源路径 是否替换参数 包含列表 **/*.xml 排除列表 jdbc.properties -
测试资源 同05 -
源码目录 -
脚本目录 直接拷贝 -
测试单元目录 -
编译中间文件目录 -
测试中间文件目录 -
扩展构建 如wagon-maven-plugin ssh传输 -
使用的插件 maven-assembly-plugin 2.5.5 执行目标 assembly package 目标构建阶段 构建名 single false是否被子pom继承 插件参数 ${finalName} false assembly.xml false 依赖插件是否下载 额外依赖 ... true 是否被继承 -
定义与子项目的共同
maven 项目deploy发布配置 pom.xml
-
发布总节点 -
发布远程仓库信息 true自动生成版本号 repo-id repo-name file://${basedir}/target/deploy -
快照 同02 -
部署需要的网站信息 site-id site-name -
项目的下载地址
-
重定义信息
maven 其它 pom.xml
-
仓库 依赖仓库 / layout> default</layout> 插件仓库 -
配置列表 自动触发逻辑 false默认是否触发 1.7 如果jdk是1.7被激活 如果操作系统匹配被激活 Windows XP Windows x86 5.1.2600 检查属性值激活 mavenVersion 2.0.3 检查文件 xx/xx/xx 存在激活 xx/xx/xx 不存在激活 -
报表配置 -
项目管理配置 bug 持续集成 - 项目信息配置