Maven多模块之父子关系的创建

所属分类: 软件编程 / java 阅读数: 40
收藏 0 赞 0 分享

Maven多模块项目,适用于一些比较大的项目,通过合理的模块拆分,实现代码的复用,便于维护和管理。尤其是一些开源框架,也是采用多模块的方式,提供插件集成,用户可以根据需要配置指定的模块。

Maven多模块(pom)

1.1 父模块创建

先创建个简单的空的Maven Project作为父项目

1.2 子模块创建

重新创建一个Maven Project作为子项目

1.3 父子模块(继承关系)

注意:此时父子模块为两个独立的项目。

步骤1:子项目中加入<parent>节点,传入父项目完整坐标。

步骤2:将子项目中的依赖都注释掉。

注意:此时子项目中的没有了Maven Dependencies。

步骤3:将子项目注释的依赖添加到父项目中。

注意:此时子项目中的依赖又添加回来了。

这种直接在父工程中加入<dependencies>的方式,让子工程可以直接复用依赖,但是缺点是所有的子项目无条件继承父工程所有依赖,所以如果要在父工程中添加依赖只能针对非常通用的依赖。

在父项目中再添加一个依赖。

子项目同时也继承了新添加的依赖。

那如果不想无条件继承父工程的所有依赖,而想让子项目自行选择需要的依赖又该如何做呢?

1.4 dependencyManagement

在父项目中用<dependencies>节点包裹<dependencies>节点,并且添加的是完整的依赖坐标(gav)。

此时子项目中的Maven Dependencies又会消失,说明添加<dependencies>节点后,它并不负责相关依赖的下载。

子项目加入相应同样依赖,注意不要加versionversion继承自父项目),需要什么样的依赖就声明什么。

特别注意,如果父项目提供了groupidversion,则删除子项目坐标中的groupidversion,直接继承父项目相关坐标。

dependencyManagement的作用:依赖版本管理器

  1. 本身并不下载任何依赖,只是管理依赖的版本。依赖的下载依然需要单独的<dependencies>(不加dependencyManagement,额外写一个)去做
  2. 如果<dependencies>中的<dependency>没有声明版本号(version),maven会去寻找有无对应的dependencyManagement,当前工程没有就会向上找父工程。如果找到就以dependencyManagement中对应依赖声明的version为准,否则报错version is missing。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

java实现背单词程序

这篇文章主要为大家详细介绍了java实现背单词程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

java实现单词查询小程序

这篇文章主要为大家详细介绍了java实现单词查询小程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Java程序开发环境配置图文教程

这篇文章主要为大家详细介绍了Java程序开发环境配置图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

详解ssh框架原理及流程

在本文中小编给大家整理的是关于ssh框架原理及流程的相关知识点内容,有此需要的朋友们可以学习下。
收藏 0 赞 0 分享

Java实现弹窗效果的基本操作

这篇文章主要为大家详细介绍了Java实现弹窗效果的基本操作,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

详解springmvc常用5种注解

在本篇里我们给大家总结了关于springmvc常用5种注解相关知识点以及实例代码,需要的朋友们参考下。
收藏 0 赞 0 分享

Java实现弹窗效果的基本操作(2)

这篇文章主要为大家详细介绍了Java实现弹窗效果的基本操作第二篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Spring Boot假死诊断实战记录

这篇文章主要给大家介绍了关于Spring Boot假死诊断的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring Boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

Java计时新姿势StopWatch详解

这篇文章主要介绍了Java计时新姿势StopWatch,最近公司来了个大佬,从他那里学到不少东西,其中一个就是计时的新姿势「StopWatch」,需要的朋友可以参考下
收藏 0 赞 0 分享

java实现点击按钮弹出新窗体功能

这篇文章主要为大家详细介绍了java实现点击按钮弹出新窗体功能,旧窗体不进行操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享
查看更多