Maven项目继承与聚合
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6628534.html
一:继承
在Java编程中,如果多个类都使用到了相同的内容、方法时,我们可以用继承的方法,把这些共用的内容封装到一个父类中,被各个子类继承使用,避免代码重复。
在Maven中,这种思想也成立。Maven中的面向对象是:每个Maven项目看作一个对象,而pom.xml就是每个对象的class对象,可以通过pom.xml操作整个项目。
当有多个具有依赖传递的项目都依赖了一个相同的jar包时,那么这个jar包就会在依赖链上各个项目中被导入,这是重复的。
解决的办法就是使用继承。
1:创建父maven项目,在pom.xml中定义被共用的依赖:通过<depencyManagement>标签。
<depencyManagement>
<depencies>
<depency>
共用依赖包的坐标...
</depency>
</depencies>
</depencyManagement>
复制代码
2:在需要使用到共用依赖包的项目中继承父项目:通过<parent>标签
<parent>
<!--父项目坐标-->
<groupId> </groupId>
<artifactId> </artifactId>
<version> </version>
</parent>
二:聚合
假设现在有Maven项目A,B,C,D,现在要对这四个项目进行编译、测试、打包操作。一种方法就是逐个项目进行编译、测试、打包。另一种方式就是:通过项目的聚合,把这四个项目一起进行处理。
创建项目E,在E的pom.xml中,首先修改E的<packaging>为pom,表示项目E只是一个maven脚本文件,用于执行。然后通过<modules>标签进行聚合:
<modules>
<module>要聚合的项目路径</module>
<module>../A</module>
<module>../B</module>
<module>../C</module>
<module>../D</module>
</modules>
然后通过maven指令执行这个pom.xml,例如执行 打包 操作:mvn package
我们就可以得到A/B/C/D四个项目的打包结果了。
Maven项目继承与聚合的更多相关文章
- Maven的继承和聚合
Maven的继承和聚合子项目的pom文件里通过<parent>节点来继承父项目 <parent> <groupId>com.tykj</groupId> ...
- Maven的继承与聚合——多模块开发
一:Maven多模块项目,适用于一些比较大的项目,通过合理的模块拆分,实现代码的复用,便于维护和管理.尤其是一些开源框架,也是采用多模块的方式,提供插件集成,用户可以根据需要配置指定的模块. 二:继承 ...
- maven pom继承与聚合
一.POM聚合模块: 在分布式架构,分模块化开发中,每个某块可能都是一个单独的maven项目,能够独立的进行项目构架,当模块比较多时,可以使用maven聚合聚合项目来简化maven构建,一次构建多个项 ...
- Eclipse搭建maven项目的流程,聚合所有的子模块项目
Eclipse搭建maven项目的流程 2018年03月01日 15:47:03 阅读数:22 1:搭建parent工程,用来聚合所有的子模块项目 2:搭建公共使用的模块common 这里你要点击空白 ...
- maven项目的聚合与继承
maven项目的聚合与继承: 一.聚合 如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合 1.1.聚合配置代码 1 <modules> 2 <module>模 ...
- Maven详解之聚合与继承
说到聚合与继承我们都很熟悉,maven同样也具备这样的设计原则,下面我们来看一下Maven的pom如何进行聚合与继承的配置实现. 一.为什么要聚合? 随着技术的飞速发展和各类用户对软件的要求越来越高, ...
- Maven学习总结(五)——聚合与继承
一.聚合 如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合 1.1.聚合配置代码 <modules> <module>模块一</module> & ...
- maven之详解继承与聚合
说到聚合与继承我们都很熟悉,maven同样也具备这样的设计原则,下面我们来看一下Maven的pom如何进行聚合与继承的配置实现. 一.为什么要聚合? 随着技术的飞速发展和各类用户对软件的要求越来越高, ...
- 转】Maven学习总结(五)——聚合与继承
原博文出自于: http://www.cnblogs.com/xdp-gacl/p/4058008.html 感谢! 一.聚合 如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合 1. ...
随机推荐
- java数字转换成文字方法
public class IntToSmallChineseNumber { public static String ToCH(int intInput) { String si = String. ...
- android中得到颜色,图片资源的方式
button01.setBackgroundColor(getResources().getColor(R.color.red)); color.xml colors.xml <?xml ver ...
- CountDownLatch使用场景及分析
JDk1.5提供了一个非常有用的包,Concurrent包,这个包主要用来操作一些并发操作,提供一些并发类,可以方便在项目当中傻瓜式应用. JDK1.5以前,使用并发操作,都是通过Thread,Run ...
- Netty Associated -- Channel
A nexus to a network socket or a component which is capable of I/O operations such as read, write, c ...
- Risc-V指令集
https://riscv.org/specifications/ Risc-V文档包括:用户层指令集文档和特权架构文档,下面这两个文件的官网链接. User-Level ISA Specificat ...
- Groupnet, Subnet, IP Pool的概念
Groupnet是OneFS 8.0新引入的network object,专门为了服务Multi-Tenancy而创建,目的是让OneFS可以同时地处理多套网络配置. 如果用户不需要使用multi-t ...
- 解决Android中图片圆角——.9图
目录: 一.问题概述 二..9图介绍 三..9图制作 1.开发工具 2.打开图片 3.制作图片 4.保存图片 一.问题概述 在html开发中,可以通过设置css的border-radius来设置圆角 ...
- Linux系统下对NFS服务安全加固的方法
NFS(Network File System)是 FreeBSD 支持的一种文件系统,它允许网络中的计算机之间通过 TCP/IP 网络共享资源.不正确的配置和使用 NFS,会带来安全问题. 概述 N ...
- Eclipse中GitLab的配置和使用入门
一.Eclipse中配置GitLab的前提条件 1.1:安装Git客户端 去官网https://git-scm.com/downloads下载合适的版本即可,一般开发环境是windows的就下载win ...
- O2O、C2C、B2B、B2C
一.O2O.C2C.B2B.B2C的区别在哪里? O2O是Online to offline 分为四种运营模式 1.Online to offline 是线上交易到线下消费体验 2.Offline t ...