1、在之前的文章中,我们已经建立了四个Maven项目,但是此时如果我们要对这四个项目进行编译打包时,必须一个一个的进行执行命令,而聚合就是指只要我们在其中一个项目中编写一些代码,则在进行此项目的编译和打包的时候也会自动的将其他的项目进行编译和打包!一般情况下一个项目中可能包含很多的子项目,所以我们只需要在这个项目的根目录下建立一个pom.xml即可,不需要在每一个子项目中建立一个pom.xml文件,如下:

这个是现在struts2的源码得到的文件,在struts2这个项目中包含了apps、core等模块,但只建立了一个pom.xml文件。

因为在MyEclipse中一个单独的文件只能存放在一个项目中,所以为了在MyEclipse中做演示,这里专门建立一个user-aggregation的项目,用来存放pom.xml文件:

以上是user-aggregation和另外四个项目之间的关系,user-aggregation项目中pom.xml文件的内容如下:

 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>com.lq.wangzhen.user</groupId>
<artifactId>user-aggregation</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging> <!-- 此处不是以jar包的形式进行打包,而是以pom的形式进行 --> <modules>
<module>../user-core</module> <!-- 这里因为此pom.xml文件在user-aggregation项目中,需要退出一个文件夹才能找到user-core -->
<module>../user-dao</module>
<module>../user-log</module>
<module>../user-services</module>
</modules>
</project>

这样我们使用mvn clean install命令执行一下user-aggregation中的pom.xml文件, 就可以发现会自动的进行另外四个项目的编译和安装:

2、下面我们介绍一下对于一个项目的版本管理,比如一个Hadoop压缩包的命名:

这里可以发现他命名是hadoop-2.0.3-alpha.tar.gz,其中包含了以下的含义:

  • 第一个数字表示总版本号(如:2):只要有大的变动的时候就会改变,表示框架有了变动
  • 第二个数字表示分支版本号(如:0):一般表示增加了一些功能
  • 第三个数字表示小版本号(如:3):在分支版本上面进行了bug的修复
  • 第四个表示里程碑版本(如:alpha):发展历程为:SNAPSHOT(快照版本,不稳定)--->alpha(内部测试版本)-->beta版本(外部的公测版本)-->release(稳定版本)-->GA(非常稳定版本)

【Maven实战】依赖的聚合和版本管理的更多相关文章

  1. 《Maven实战》第13章 版本管理

    版本管理:项目整体版本的演变过程的管理,如从1.0-SNAPSHOT到1.0,再到1.1-SNAPSHOT 版本控制:借助版本控制工具追踪代码的每一个变更 13.1什么是版本管理 版本管理:项目整体版 ...

  2. 【转】Maven实战(九)---模块聚合和继承

    原博文出自于:http://blog.csdn.net/liutengteng130/article/details/47001831   感谢! 类之间有聚合和继承关系,Maven也具备这样的设计原 ...

  3. Maven实战(九)---模块聚合和继承

    类之间有聚合和继承关系,Maven也具备这种设计原则. 那么Maven的pom是怎样进行聚合与继承的呢? 一.什么是聚合?为什么要用聚合? 上一篇博客介绍了模块化的基本知识. 有了模块化,那么我们项目 ...

  4. maven 依赖(依赖范围,聚合,继承等)

    目录: 1.什么是依赖? 2.依赖的管理:依赖的范围与传递,依赖的排除,依赖的原则(maven对依赖冲突的处理原则) 3.依赖的版本管理 4.继承与聚合 1.什么是依赖? 简单的讲,当jar包A需要j ...

  5. Maven实战(六)依赖

    我们项目中用到的jar包可以通过依赖的方式引入,构建项目的时候从Maven仓库下载即可. 1. 依赖配置    依赖可以声明如下: <project> ... <dependenci ...

  6. Maven核心概念之依赖,聚合与继承

    一.依赖 我们项目中依赖的jar包可以通过依赖的方式(dependencies元素下添加dependency子元素)引入. <dependency> <groupId>juni ...

  7. (转)Maven实战(六)依赖

    我们项目中用到的jar包可以通过依赖的方式引入,构建项目的时候从Maven仓库下载即可. 1. 依赖配置    依赖可以声明如下: <project> ... <dependenci ...

  8. Maven实战(十一)eclipse下载依赖jar包出问题

    问题描述 在pom.xml中配置了依赖,但是提示依赖不成功,或在本地仓库找不到相关依赖 大致错误如下: ArtifactDescriptorException: Failed to read arti ...

  9. maven 依赖、聚合和继承 (转)

    Maven 插件和仓库 Maven 本质上是一个插件框架,它的核心并不执行任何具体的构建任务,仅仅定义了抽象的生命周期,所有这些任务都交给插件来完成的.每个插件都能完成至少一个任务,每个任务即是一个功 ...

随机推荐

  1. [置顶] C语言单元测试框架

    unitest.h /****************************************************************************** * * * This ...

  2. HDU-3473Minimum Sum

    Problem Description You are given N positive integers, denoted as x0, x1 ... xN-1. Then give you som ...

  3. [ES6] Array.findIndex()

    In es5, you can use indexOf to get the index of one item in an array. In es6, you can use findIndex( ...

  4. IOS UIButton使用详解

    第一.UIButton的定义 UIButton *button=[[UIButton buttonWithType:(UIButtonType); 能够定义的button类型有以下6种, typede ...

  5. 使用HTML5 WebDataBase设计离线数据库

    基于HTML5的Web DataBase 可以让你在浏览器中进行数据持久地存储管理和有效查询,假设你的离线应用程序有需要规范化的存储功能,那么使用Web DataBase,可以使你的应用程序无论是在离 ...

  6. NYOJ128前缀式计算

    前缀式计算 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 先说明一下什么是中缀式: 如2+(3+4)*5这种我们最常见的式子就是中缀式. 而把中缀式按运算顺序加上括 ...

  7. QT pro文件解析

    在QT中使用qmake自动生成pro文件,如果要自己定制工程选项,则需要自行修改pro文件. pro文件有以下关键字:TEMPLATE.TARGET.DESTDIR.DEPENDPATH.INCLUD ...

  8. Mediator 中介者 协调者模式

    简介 定义:用一个[中介者对象]封装一系列的[对象交互],中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互. 中介者模式的结构 抽象中介者Mediator:定义好[ ...

  9. css.day02

    1.复合选择器 复合选择器 一般会有几个标签混合使用 .把多个组合成一个  称之为复合 1.1标签指定式 复合选择器 (交集选择器) 格式: 标记选择器+ 类名/ID名称 { 属性:值;} 实际情况用 ...

  10. (转)phpmyadmin操作技巧:如何在phpmyadmin里面复制mysql数据库?

    转之--http://blogunion.org/posts/copy-mysql-data-in-phpmyadmin.html 对于每一个站长而言,都会遇到要进行网站测试的时候.这个时候,往往需要 ...