为什么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文件的一些自己的理解相关推荐

  1. jenkins修改pom文件_jenkins小插曲-maven pom文件插件配置

    jenkins工作空间的文件还在workspace下面,现在将它自动部署到tomcat的webapps下面,需要在pom.xml文件中配置部署插件. 准备工作: 配置tomcat的访问权限,在mave ...

  2. Maven Pom文件中的scope含义

    一.scope作用 scope主要是为了管理依赖的部署,确定依赖的使用范围.使用scope标签,可以很方便.直观的进行依赖的总体管理. 二.scope的使用 compile(默认值) 缺省值,会随一起 ...

  3. Maven pom 文件解释

    1 - 什么是构建? 我们都知道,写完代码之后需要进行编译和运行,以笔者自身为例,使用 Eclipse 写完代码,需要进行编译,再生成 war 包,以便部署到 Tomcat. 在编写 Java 代码的 ...

  4. 【转载】Maven pom文件详解

    什么是pom?     pom作为项目对象模型.通过xml表示maven项目,使用pom.xml来实现.主要描述了项目:包括配置文件:开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的 ...

  5. Maven Pom文件标签详解

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  6. maven:pom文件详细信息

    一.maven项目的目录结构 ​ pom文件定于了一个maven项目的maven配置,一般pom文件的放在项目或者模块的根目录下. ​ maven的遵循约定大于配置,约定了如下的目录结构: 目录 目的 ...

  7. jenkins修改pom文件_从Jenkins中的pom文件自动派生强制性SonarQube属性

    情况: 我想用由詹金斯(1.642.4)触发的SonarQube(5.4)分析我的项目.它是使用maven构建的Java项目. 我看到两种触发分析的方法: 发布构建操作"使用maven进行S ...

  8. kafka 的pom文件_基于SparkStreaming+Kafka+HBase实时点击流案例

    大数据技术与架构点击右侧关注,大数据开发领域最强公众号! 暴走大数据点击右侧关注,暴走大数据! 背景 Kafka实时记录从数据采集工具Flume或业务系统实时接口收集数据,并作为消息缓冲组件为上游实时 ...

  9. java中pom文件详解

    目录 一.maven项目的目录结构 二.根元素和必要配置 三.父项目和parent元素 四.项目构建需要的信息 1.路径管理 2.资源管理 3.插件管理 4.构建扩展 5.其他配置 五.项目依赖相关信 ...

  10. maven项目的pom文件中各标签理解

    本文来说下maven项目的pom文件中各标签理解 文章目录 常用标签 常用标签 POM是项目对象模型(Project Object Model)的简称 pom.xml主要描述了项目的maven坐标,该 ...

最新文章

  1. 迭代器接口IteratorAggregate 与类 ArrayIterator(转)
  2. 微信小程序 - this.triggerEvent()
  3. 从零开始学习docker(十三)Docker Compose--scale
  4. Spring入门 IOC
  5. [六省联考2017]组合数问题
  6. 敏捷实践:比每日会议更疯狂的半日会议!
  7. mysql 异步复制建立过程_mysql生产环境高可用---基于GTID异步复制项目实施
  8. python数据分布_Python中的数据分布
  9. 读取遥感图像中遇到的问题集锦
  10. k8s删除deployment_k8s灾备指南(Velero)
  11. string与byte[]之间的转换
  12. NIST 发布关于使用“行政令-关键软件”的安全措施指南
  13. 浏览器升级怎么升_测评:iOS 13 升不?新老机型跑分对比!
  14. ie内核出现问题的解决方法
  15. 微信公众平台 客服接口-发消息
  16. mysql 1236_MySQL 1236错误解决方法
  17. 谷歌中国3月28日发年终奖 不少员工将选择离职【转载】
  18. 【Linux】命令别名与历史命令(alise\history)
  19. java注解约束参数为固定值_java自定义注解的实现及属性设置
  20. mysql 单表多次查询和多表联合查询,哪个效率高

热门文章

  1. PHP Fatal error: Declaration of Hyperf\Framework\SymfonyEventDispatcher::dispatch($event) must be c
  2. 腾讯云对象存储(cos) js jdk上传文件
  3. 据说微软已撤销了测试部门?
  4. LINUX访问WINDOWS网络共享目录
  5. 全网首发:怎样制作CDKEY(6)-CDKEY破解
  6. CentOS安装Nvidia驱动和CUDA
  7. LINUX tar解压到指定目录
  8. PYTHON莫名其妙的崩溃
  9. 连文件搜索都不会用,也不自己反省一下?
  10. 平时多流汗,战时少流血