Maven模块聚合

一个Maven工程中一般会有很多模块组成,为了构建的方便通常想一次构建多个模块,Maven聚合这一特性就是为该需求服务的。 假设我们有account-email和account-persist两个模块。为了使用一条命令就能构建这两个模块,我门创建额外的account-aggregator的模块,然后通过该模块构建整个项目的的所有模块,account-aggregator模块本身作为Maven项目,它必须要有自己的POM文件,同时作为一个聚合项目,其POM又有特殊的地方。如下代码:

<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
        <groupId>com.juvenxu.mvnbook.account</groupId>
        <artifactId>account-aggregator</artifactId>
        <version>1.0.0-SNAPSHOT</version>
        <packaging>pom</packaging>
        <name>Account Aggregator</name>
        <modules>
             <module>account-email</module>
             <module>account-persist</module>
        <modules>
</project> 

第一个特殊的地方为packaging,其值为pom,查看其他模块,它们都没有声明packaging,即使用了默认的jar。对于聚合模块来说,其打包方式packaging的值必须为pom,否则无法构建。

为了方便用户构建项目,通常将聚合模块放在项目目录的最顶层,其他模块则作为聚合模块的子目录存在。

关于目录结构还要注意一点,聚合模块与其他模块的目录结构并非一定是要父子关系,也可以是平行目录的结构,这时相应的module路径也要做相应的更改,如下:

<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
        <groupId>com.juvenxu.mvnbook.account</groupId>
        <artifactId>account-aggregator</artifactId>
        <version>1.0.0-SNAPSHOT</version>
        <packaging>pom</packaging>
        <name>Account Aggregator</name>
        <modules>
             <module>../account-email</module>
             <module>../account-persist</module>
        <modules>
</project> 
时间: 2024-10-15 18:27:19

Maven模块聚合的相关文章

Maven模块聚合与继承

聚合 假如有account-email和account-persist两个模块,我们想要一次构建这两个项目,这时需要用到聚合. 聚合模块 package值必须为pom 必须有元素modules module值为相对目录名 新建account-aggregator模块,下面有如下pom文件,其它两个模块保持不变. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/

maven的聚合模块和pom继承使用

1.什么是maven的聚合模块? 聚合模块为项目目录的最顶层,其他模块作为聚合模块子目录而存在.目的是为一次构建多个项目模块. 1.1 项目结构 我自己化了一个关于项目的关系: 1.2 pom标签配置-module下载 maven-aggregate作为maven pom项目,需要定义pom.xml的 packaging 为 pom类型 我们还是参照 maven的依赖特性,冲突解决(五) 创建 maven-01 maven-02  maven-03工程,通过maven-aggregate pom

关于maven 的聚合

1.经理让我使用多模块搭建框架,供开发小组其他人使用,避免出现以前开发项目时出现的错误. 2.经理 的意思是说,创建6个项目 其中两个项目是用来打包的,另外的几个项目,进行模块划分. 3.我疑惑就是,我们四个人怎么进行运行项目,毕竟与之前的目录结构不同了,思考方式也不同了, 所以怎么进行运行项目才是一个真正的问题. 搭框架?分清每个人需要干的事情? 哪些功能是公共的?哪些资源是公共的 ? 关于maven 的聚合,布布扣,bubuko.com

Maven实战——聚合与继承(上)

聚合 首先我们来看两个pom.xml文件,我们将通过这两个pom文件来引入我们要学习的聚合与继承 account-email <modelVersion>4.0.0</modelVersion> <groupId>com.juvenxu.mvnbook.account</groupId> <artifactId>account-email</artifactId> <name>Account Email</name&

Maven之——聚合与继承

Maven之--聚合与继承 1.    聚合 所谓聚合就是用一个pom.xml配置文件将一个或者多个项目关联起来.这样当我们执行聚合文件pom.xml的生命周期阶段的时候.他就会执行在聚合文件中指定聚合的所有项目的对应生命周期阶段. 包含聚合文件的是一个额外的模块.这个模块必须要有自己的POM文件.并切此聚合项目的POM的packaging必须是pom: <modelVersion>4.0.0</modelVersion> <groupId>org.andy.items

maven的聚合与继承

新建一个空的maven项目user-parent 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

Maven工程聚合,多个Java工程、web工程聚合

最近写个自己的小项目,牵扯到maven工程聚合问题,网上看了大量资料研究了下,成功了,按照自己的理解简单粗暴的记录下... 一.模块结构 粗略画了个草图表示下现有模块之间的关系 二.模块作用及配置文件 shiro 提供shiro框架所需的jar包及shiro框架可以共用的相关代码 pom略,仅仅为shiro相关jar包配置 ssm 提供ssm框架所需的jar包及与ssm框架相关的可以共用的相关代码 pom略,仅仅为ssm框架相关所需jar包配置 tool 工具模块,提供一些工具代码. pom不配

maven模块开发(转)

所有用Maven管理的真实的项目都应该是分模块的,每个模块都对应着一个pom.xml.它们之间通过继承和聚合(也称作多模块,multi-module)相互关联.那么,为什么要这么做呢?我们明明在开发一个项目,划分模块后,导入Eclipse变成了N个项目,这会带来复杂度,给开发带来不便. 为了解释原因,假设有这样一个项目,很常见的Java Web应用.在这个应用中,我们分了几层: Dao层负责数据库交互,封装了Hibernate交互的类. Service层处理业务逻辑,放一些Service接口和实

Maven学习笔记(三):Maven的聚合和继承

Maven的聚合其实就是把各个项目拷贝到一个项目里,便于统一构建(这种是父子目录结构构件,个人喜欢这种,平行结构不喜欢),实现聚合的方式为: -- 新建一个普通的Maven项目,只保留pom文件,其他的目录结构都删除 -- 配置新建项目的pom文件: 1 <project ...> 2 <modelVersion>4.0.0</modelVersion> 3 <groupId>XXXX</groupId> 4 <artifactId>