maven之聚合继承

聚合

[多模块Maven项目]
当项目以多模块的形式构建的时候,需要每个依赖模块单独编译,而聚合即实现统一编译. 目的是方便快速构建

  <packaging>pom</packaging>
  
  <modules>
	 <module>account-persist</module>
     <module>account-service</module>
     <module>account-core</module>
	 <module>account-utils</module>
	 <module>account-web</module>
  </modules>
目录结构
----pom.xml // parent pom 用于聚合构建
----account-core             // 模块
               --- pom.xml
			   --- src
----account-service          // 模块
               --- pom.xml
			   --- src
 *  聚合模块并不一定是父子关系 可以平级关系聚合; 引用方式<module>../../a</module>以相对路径查找关联模块

继承

多模块项目pom中包含很多配置信息是重复的,后续变更修改的时候,改动较大
通过继承的方式来实现统一管理可继承的属性; 目的时消除重复配置

  groupId : 项目组ID
  version: 项目版本
  desription: 项目描述
  organization: 组织信息
  inceptionYear: 创始年份
  url: 项目url地址
  developers: 开发着信息
  contributors: 贡献者信息
  distributionManagement: 部署发布信息
  issueManagement: 缺陷跟踪系统信息
  ciManagement: 持续集成系统信息
  scm: 版本控制系统信息
  mailingLists: 邮件列表信息
  properties: 自定义maven属性
  dependencies: 依赖配置
  dependencyManagement: 项目依赖管理配置
  repositories: 仓库位置
  build: 配置源码目录、输出目录、插件配置、插件管理配置
  reporting: site报告输出目录配置、报告插件配置
  

版本控制

  • 如果所有依赖包在parent中申明依赖,则无需依赖任何依赖的工具包也会继承依赖;这是不合理的
  • 通过 dependencyManagement 申明依赖,继承后并不会真实引入依赖,而定义依赖(不申明版本)会继承dependencyManagement申明的版本号
  • dependencyManagement 方便统一管理依赖的版本
  • 除继承外,还可以通过import来引入依赖管理 type: pom
  • 插件管理与依赖包管理相同 , 插件管理 [< pluginManagement >]
<properties>
	<springframework.version>2.5.6</springframework.version>
</properties>

<dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>xx</gropuId>
			<artifactId>dd</artifactId>
			<version>${springframework.version}</version>
		</dependency>
	</dependencies>
</dependencyManagement>
   <dependencyManagement>
   	<dependencies>
   		<dependency>
   			<groupId>xx</gropuId>
   			<artifactId>dd</artifactId>
   			<version>1.0</version>
			<type>pom</type>
			<scope>import</scope>
   		</dependency>
   	</dependencies>
   </dependencyManagement>
<build>
	<pluginManagement>
		<plugin>
			xxxx
		</plugin>
	</pluginManagement>
</build>
原文地址:https://www.cnblogs.com/pengsn/p/13643941.html