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. ...
随机推荐
- 实习医生格蕾第十三季/全集Grey’s Anatomy迅雷下载
英文全名Grey's Anatomy,第13季(2016)ABC.本季看点:<实习医生格蕾>(Grey’s Anatomy)上季终集里,又一名资深演员离开了——Sara Ramirez扮演 ...
- 《Netty权威指南》
<Netty权威指南> 基本信息 作者: 李林锋 出版社:电子工业出版社 ISBN:9787121233432 上架时间:2014-5-29 出版日期:2014 年6月 开本:16开 页码 ...
- layUI 几个简单的弹出层
导入控件主题 <link rel="stylesheet" href="dist/themes/default/style.min.css" /> ...
- 可重入读写锁ReentrantReadWriteLock基本原理分析
前言 本篇适用于了解ReentrantLock或ReentrantReadWriteLock的使用,但想要进一步了解原理的读者.见于之前的分析都是借鉴大量的JDK源码,这次以流程图的形式代替源码,希望 ...
- Forward secrecy
In cryptography, forward secrecy (FS), also known as perfect forward secrecy (PFS), is a property of ...
- 数学图形之贝塞尔(Bézier)曲面
前面章节中讲了贝塞尔(Bézier)曲线,而贝塞尔曲面是对其多一个维度的扩展.其公式依然是曲线的公式: . 而之所以由曲线变成曲面,是将顶点横向连了再纵向连. 很多计算机图形学的教程都会有贝塞尔曲面的 ...
- go语言之进阶篇单向channel的应用 (生产者,消费者模型)
1.单向channel的应用 示例: package main import ( "fmt" ) //此通道只能写,不能读 func producer(out chan<- ...
- go语言之进阶篇字符串操作常用函数介绍
下面这些函数来自于strings包,这里介绍一些我平常经常用到的函数,更详细的请参考官方的文档. 一.字符串操作常用函数介绍 1.Contains func Contains(s, substr st ...
- windows包管理器chocolatey
1.安装chocolatey打开cmd.exe执行@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Obj ...
- 2018.08.28 ali 梯度下降法实现最小二乘
- 要理解梯度下降和牛顿迭代法的区别 #include<stdio.h> // 1. 线性多维函数原型是 y = f(x1,x2,x3) = a * x1 + b * x2 + c * x ...