groupid 一般定义方式为实际项目名
artifactId 一一般表示该项目中的某个某块名
version 表示该项目中的某个模块的版本号
scope 表示该某个的作用范围,scope的不同值也表示该模块的作用fanwe
- compile :表示当前模块在程序的各个阶段都可能被使用,如 编译 运行 测试 打包等
- provided :表示当前模块在编译 运行 测试阶段可能被使用 ,在程序打包时不需要 如 jsp-api ,sevlet-api在tomcat上进行发布时将不行要进行提供否则将会产生依赖冲突
- test:表示当前的模块只在test阶段有效其余阶段将不被需要
- runntime:表示当前的依赖模块不需要参加编译,但是需要在运行阶段参加\
name:用于指定项目的名称
description:对当前项目的描述
parent:指定当前项目的父工程
packaging:表示项目的打包方式 jar war ,还有一种pom的方式多用于组合聚合模式中指定当前项目为一个父工程项目
dependencyManagement:多用于在父工程中指定依赖,在子工程中可以直接进行父工程中该标签中的所用依赖的继承,子工程中也可以将父共工程中的依赖进行覆盖使用自身定义的依赖
dependencies:依赖管理标签 将所有依赖在该标签中进行定义 dependency
dependency:进行某个具体的依赖的定义
build :用于建立插件使用
plugins:在该标签中定义插件plugin
plugin:表示某个具体的插件
properties:用于进行依赖的版本的统一控制在version中使用${在properties中的标签名}进行版本声明
modules:在父工程中指定由哪些工程是该工程的子工程
module:自定具体的某个子工程的名字,该子工程的名字为artifactId的值
maven的生命周期:在maven的生命周期中执行某个生命周期中的命令时会将该命令前的所有什么周期的命令进行执行一次也就是生命周期的阶段具有前后依赖关系,每个生命周期相互独立
- clean:
- pre-clean:进行clean前的一些准备工作
- clean:清楚之前项目产生的编译文件,也就是删除target文件夹
- post-clean:执行清理后需要完成的工作
- default:
- validate:验证项目结构是否正常 main下面的Java和resource文件,test下的java文件是否存在,必要的配置文件是否存在
- initialize:构建前的初始化工作,初始化参数,创建必要的目录等
- generate-source:产生编译过程中所需的源代码
- process-source:处理源代码
- generate-resource:产生主代码中的资源在class中的包
- process-resource:将资源文件复制到class中对应的包中
- compile:编译源代码,mvn compile
- process-classes:产生编译过程中生成的文件
- generate-test-source:产生编译过程中测试相关的代码
- process-test-source:出来测试相关代码
- generate-test-resource:产生test相关的资源文件在classpath中的相关的包
- process-test-resource:将test中的resource中的复制到对应的test-class中对用的resource中的包中
- test-compile:将test代码进行编译 mvn test
- process-test-classes:产生test过程中生成的文件
- test:运行测试案例
- prepare-package:处理打包前的初始化的装备工作
- package:将编译后的class和资源打包成压缩文件
- pre-integration-test:做好基础测试前的准备工作,如基础环境的 参数设置
- integration-test:集成测试
- post-integration-test:完成集成测试后的收尾工作,如清理集成环境的参数设置
- verify:检测测试后的包是否完好
- install:将打包的组件以构建的形式,安装到本地依赖仓库中,以便共享给本地的其他项目
- deploy:运行集成和发布环境,将测试后的最终包衣构件的方式发布到远程仓库中,方便所有程序员共享
- site:站点的建立和部署
- pre-site:生成站点签到准备工作
- site:生成站点文档
- post-site:执行生成站点的收尾工作
- site-deploy:站点发布到服务器