maven pom文件的一些自己的理解
为什么80%的码农都做不了架构师?>>>
1 父模块与子模块
在父模块指定自己的子模块,并且准备一些各个子模块公用的资源,如插件,配置信息等等。
2 构建模块与功能模块
将打包的模块与实现具体功能的模块分开的做法。
通常情况下,父模块和构建模块合并为一个模块。
3 生命周期
生命周期是对maven软件开发过程的阶段的抽象,每个生命周期又分了若干阶段。
maven生命周期分为三套,clean default site。
4 插件和目标
生命周期是不干活的,不干具体实事,是用来约定大家进行项目构建的行为规范。真正干活的是插件。
一个插件其实可以干好几件事情,每件事情又有个名字 叫做目标。所以插件就像我们程序员,要会java开发,还要知道数据库,还要知道操作系统。
一个插件就是一组插件目标的集合。
生命周期,和阶段用来规划项目的进行节奏和步伐,插件和插件目标干活,2方面配合,就会产生产出物,如jar,war。
生命周期和插件的关联要解决几个问题
1 哪个插件要关联
2 哪个插件目标要关联
3 关联到哪个生命周期
4 关联到生命周期的哪个阶段
生命周期和插件的关联在pom文件中有2中关联方式:
1 在build元素里,这里是一段cobertura的配置
<!-- cobertura start -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId> <!-- 这里2行 解决 哪个插件要关联 -->
<version>2.5.1</version>
<configuration>
</configuration>
<executions>
<execution>
<id>site</id> <!-- 这里 解决 要关联哪个生命周期 -->
<phase>site</phase> <!-- 这里 解决 要关联生命周期的哪个阶段 -->
<goals>
<goal>cobertura</goal> <!-- 这里 解决 哪个插件目标关联 -->
</goals>
</execution>
</executions>
</plugin>
<!-- cobertura end -->
2 在pluginManage元素里
5 pom.xml文件和properties文件的关联
properties文件是2部分的,key值和value值,value值是可以写引用的 形如 ${xxxx}
${xxx}这些值在编译的时候,或者测试的时候会用pom文件中对应的properties元素的子元素替换。
这个特太好了。
6 build选项
pom文件里是可以有好几个build元素的,build选项着重说明的是,在执行mvn命令的时候指定使用哪个build节点下的配置。
例如,测试的时候要依赖一些东西,生产环境中是不需要的,就可以配置2个build,在测试的时候指定用测试build,生产环境部署的
时候指定生产build打包。
这里的build选项与5配合,就实现了 测试很生产环境 多个生产环境 数据库配置的问题。
这样我们就可以在一个地方看到所有环境的数据库信息,只要在执行mvn命令的时候指定build就可以使用相应的配置信息。
7 属性替换
为了统一管理依赖的版本号,可以在pom文件中的<properties>节点点配置多个元素,名字自定义,
然后在所有使用版本号的地方用表达式$()替换真是的版本号,这样在修改版本号的时候就可以一改全改,省去了查找替换之苦。
示例:
<dependencies>
<dependency>
<groupId>xxx</groupId>
<artifactId>xxx</artifactId>
<version>${aa.version}</version>
</dependency>
</dependencies>
<properties>
<skipTests>false</skipTests>
<aa.version>3.0.0</aa.version>
</properties>
转载于:https://my.oschina.net/wujinxin/blog/42053
maven pom文件的一些自己的理解相关推荐
- jenkins修改pom文件_jenkins小插曲-maven pom文件插件配置
jenkins工作空间的文件还在workspace下面,现在将它自动部署到tomcat的webapps下面,需要在pom.xml文件中配置部署插件. 准备工作: 配置tomcat的访问权限,在mave ...
- Maven Pom文件中的scope含义
一.scope作用 scope主要是为了管理依赖的部署,确定依赖的使用范围.使用scope标签,可以很方便.直观的进行依赖的总体管理. 二.scope的使用 compile(默认值) 缺省值,会随一起 ...
- Maven pom 文件解释
1 - 什么是构建? 我们都知道,写完代码之后需要进行编译和运行,以笔者自身为例,使用 Eclipse 写完代码,需要进行编译,再生成 war 包,以便部署到 Tomcat. 在编写 Java 代码的 ...
- 【转载】Maven pom文件详解
什么是pom? pom作为项目对象模型.通过xml表示maven项目,使用pom.xml来实现.主要描述了项目:包括配置文件:开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的 ...
- Maven Pom文件标签详解
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...
- maven:pom文件详细信息
一.maven项目的目录结构 pom文件定于了一个maven项目的maven配置,一般pom文件的放在项目或者模块的根目录下. maven的遵循约定大于配置,约定了如下的目录结构: 目录 目的 ...
- jenkins修改pom文件_从Jenkins中的pom文件自动派生强制性SonarQube属性
情况: 我想用由詹金斯(1.642.4)触发的SonarQube(5.4)分析我的项目.它是使用maven构建的Java项目. 我看到两种触发分析的方法: 发布构建操作"使用maven进行S ...
- kafka 的pom文件_基于SparkStreaming+Kafka+HBase实时点击流案例
大数据技术与架构点击右侧关注,大数据开发领域最强公众号! 暴走大数据点击右侧关注,暴走大数据! 背景 Kafka实时记录从数据采集工具Flume或业务系统实时接口收集数据,并作为消息缓冲组件为上游实时 ...
- java中pom文件详解
目录 一.maven项目的目录结构 二.根元素和必要配置 三.父项目和parent元素 四.项目构建需要的信息 1.路径管理 2.资源管理 3.插件管理 4.构建扩展 5.其他配置 五.项目依赖相关信 ...
- maven项目的pom文件中各标签理解
本文来说下maven项目的pom文件中各标签理解 文章目录 常用标签 常用标签 POM是项目对象模型(Project Object Model)的简称 pom.xml主要描述了项目的maven坐标,该 ...
最新文章
- 迭代器接口IteratorAggregate 与类 ArrayIterator(转)
- 微信小程序 - this.triggerEvent()
- 从零开始学习docker(十三)Docker Compose--scale
- Spring入门 IOC
- [六省联考2017]组合数问题
- 敏捷实践:比每日会议更疯狂的半日会议!
- mysql 异步复制建立过程_mysql生产环境高可用---基于GTID异步复制项目实施
- python数据分布_Python中的数据分布
- 读取遥感图像中遇到的问题集锦
- k8s删除deployment_k8s灾备指南(Velero)
- string与byte[]之间的转换
- NIST 发布关于使用“行政令-关键软件”的安全措施指南
- 浏览器升级怎么升_测评:iOS 13 升不?新老机型跑分对比!
- ie内核出现问题的解决方法
- 微信公众平台 客服接口-发消息
- mysql 1236_MySQL 1236错误解决方法
- 谷歌中国3月28日发年终奖 不少员工将选择离职【转载】
- 【Linux】命令别名与历史命令(alise\history)
- java注解约束参数为固定值_java自定义注解的实现及属性设置
- mysql 单表多次查询和多表联合查询,哪个效率高
热门文章
- PHP Fatal error: Declaration of Hyperf\Framework\SymfonyEventDispatcher::dispatch($event) must be c
- 腾讯云对象存储(cos) js jdk上传文件
- 据说微软已撤销了测试部门?
- LINUX访问WINDOWS网络共享目录
- 全网首发:怎样制作CDKEY(6)-CDKEY破解
- CentOS安装Nvidia驱动和CUDA
- LINUX tar解压到指定目录
- PYTHON莫名其妙的崩溃
- 连文件搜索都不会用,也不自己反省一下?
- 平时多流汗,战时少流血