基于Apache Maven构建多模块项目

news/2024/5/20 22:20:36/文章来源:https://blog.csdn.net/xiaoxing598/article/details/128887694

title: 基于Apache Maven构建多模块项目
date: 2022-04-10 00:00:00
tags:

  • Apache Maven
  • 多模块
    categories:
  • Maven

请添加图片描述

介绍

  • 多模块项目由管理一组子模块的聚合器 POM 来构建。在大多数情况下聚合器位于项目的根目录中,并且必须是 pom 类型的项目。
  • 子模块是常规的 Maven 项目,它们可以单独构建,也可以通过聚合器 POM 构建。
  • 通过聚合器 POM 构建项目时会一并构建下属的所有子模块。

多模块的优势

  • 减少重复
  • 共享依赖项和配置文件

父 POM

  • 可以创建自己的 pom.xml 文件,并作为父项目。
  • 在每个子模块的 pom.xml 文件中声明对父 POM 的继承依赖关系。
  • 父项目中另外也要声明其所属的子模块。
  • 父项目也可以单继承另一个父项目。

构建应用程序

设想这个应用程序包含四个模块,它们分别是:

模块名称独立部署说明
commons公共子模块
service业务逻辑子模块
webWeb服务子模块
job后台任务子模块

创建父POM

  1. 新增一个常规项目 msa-order
  2. 在 pom.xml 文件中增加 <packaging>pom</packaging>
  3. 声明子模块中需要复用的依赖或配置,例如:
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.6</version><relativePath/>
</parent><properties><java.version>11</java.version>
</properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId></dependency>
</dependencies>

创建子模块

  1. 依次创建四个常规项目
  2. 在父 pom.xml 文件的 modules 元素中添加子模块
<modules><module>commons</module><module>service</module><module>web</module><module>job</module>
</modules>
  1. 在各个子模块的 pom.xml 文件中添加对父项目的依赖
<parent><artifactId>msa-order-parent</artifactId><groupId>com.tianmingxing.demo</groupId><version>1.0.0-SNAPSHOT</version>
</parent>

构建项目

  1. 在父项目下执行 mvn package,这将构建所有模块其输出如下:
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for msa-order 1.0.0-SNAPSHOT:
[INFO] 
[INFO] msa-order .......................................... SUCCESS [  0.003 s]
[INFO] commons ............................................ SUCCESS [  1.625 s]
[INFO] service ............................................ SUCCESS [  0.056 s]
[INFO] web ................................................ SUCCESS [  0.891 s]
[INFO] job ................................................ SUCCESS [  0.110 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
  1. 构建顺序:
  • 项目依赖于构建中的另一个模块
  • 插件声明,其中插件是构建中的另一个子模块
  • 插件依赖于构建中的另一个模块
  • 构建中另一个模块的构建扩展声明
  • <modules> 元素中声明的顺序
  1. 可以指定构建的模块,例如本次只想构建web子模块以及它依赖的其它模块,则可以使用命令 mvn -DskipTests=true package -pl web -am

源码下载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_255437.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CNN网络:ResNet(四)

ResNet论文[https://arxiv.org/pdf/1512.03385.pdf]。RestNet网络结构ResNet在2015年被提出&#xff0c;在ImageNet比赛classification任务上获得第一名&#xff0c;因为它“简单与实用”并存&#xff0c;之后很多方法都建立在ResNet50或者ResNet101的基础上完成的&#xff0c;…

手机逻辑系统(2)---逻 辑 音 频 电 路

第二节 逻 辑 音 频 电 路 逻辑音频电路在手机电路中占有重要的地位,它是手机系统的心脏。 逻辑音频电路包含无线通信呼叫处理、音频处理、数字语音处理、射频逻辑接口电路、各种射频功能控制、电源管理和用户接口模组等。 任何一部手机的逻辑音频电路部分都包含以上的一些功能…

1.2.4存储结构-磁盘管理:磁盘优化分布存储、磁盘优化分布存储例题

1.2.4存储结构-磁盘管理&#xff1a;磁盘优化分布存储、磁盘优化分布存储例题磁盘优化分布存储磁盘优化分布存储 假设某磁盘的每个磁道划分成11个物理块&#xff0c;每块存放1个逻辑记录。逻辑记录R0&#xff0c;R1&#xff0c;…&#xff0c;R9&#xff0c;R10存放在同一个磁…

将U盘制作为启动盘

将U盘制作为启动盘 制作之前需要先保证U盘中没有重要的文件&#xff0c;因为制作时会将已有文件删除 1 安装制作软件【wePE】 ①官网选择对应PE版本下载安装 官网下载地址:http://www.wepe.com.cn IT天空的U盘装机助理&#xff1a;https://www.itiankong.net/thread-357573-1…

Ubuntu18 安装python3.7及多版本切换

1.安装3.7添加源sudo add-apt-repository ppa:deadsnakes/ppa检查更新sudo apt-get update 安装python3.7sudo apt-get install python3.72.使用 update-alternatives 来为整个系统更改Python 版本查看python替代版本信息~$ update-alternatives --display python但是结果为upd…

数字化发展趋势:打破企业边界,实现产业互联

据中欧商业在线发布的《2022未来管理人才白皮书》显示&#xff0c;在参加调研的1000家企业中&#xff0c;有77%的企业已经在公司业务中运用了数字化技术&#xff1b;更有7%的企业表示将在更深层面推进数字化转型工作。 当企业在业务层面完成数字化转型&#xff0c;下一步会走向…

知识图谱简介

知识图谱简介 知识图谱&#xff0c;是结构化的语义知识库&#xff0c;用于迅速描述物理世界中的概念及其相互关系&#xff0c;通过知识图谱能够将Web上的信息**、数据以及链接关系聚集为知识&#xff0c;使信息资源更易于计算、理解以及评价&#xff0c;并能实现知识的快速响应…

Keil中代码的颜色设置 ( 很 全 )[通俗易懂](转载)

https://cloud.tencent.com/developer/article/2081534Keil中代码的颜色设置 ( 很 全 )[通俗易懂]发布于2022-08-25 12:26:13阅读 1.8K0大家好&#xff0c;又见面了&#xff0c;我是你们的朋友全栈君。因为长时间要编程&#xff0c;对于keil上的黑字白底&#xff0c;如果看久了…

Python实现的通讯录

"为何表情&#xff0c;要让这世界安排&#xff1f;"诶&#xff0c;我们也对python的一些基础语法有了一定能的了解了。并且在这基础上&#xff0c;学习了python中的文件操作&#xff0c;那么有了这些东西以后啊&#xff0c;我们能做什么呢&#xff1f;或许对很多数据…

揭秘PPTC(自恢复保险丝)的四大使用原则

PPTC自恢复保险丝有贴片式以及插件式两种&#xff0c;封装形式多样&#xff0c;型号齐全&#xff0c;那么&#xff0c;在使用过程中&#xff0c;应该要注意什么&#xff1f;你知道吗&#xff1f;接下来&#xff0c;优恩小编将为你揭秘PPTC(自恢复保险丝)的四大使用原则。一、规…

Spring boot项目开发实战一(环境搭建)

技术栈选型 最近在实习好久没时间做过项目了&#xff0c;本次将借用公司的技术完成一个基于spring boot的实战项目&#xff0c;同时也巩固spring的相关知识。项目大体是一个后台管理系统&#xff0c;没有前台&#xff0c;用于数据分析和可视化。如下是初步的可视化界面&#x…

MySQL8.0 集群搭建

文章目录环境准备安装 MySQL 8.0配置主服务配置从服务器主从复制&#xff1a;即主服务器上的所有操作&#xff08;创建库&#xff0c;修改表等&#xff09;会被同步到从服务器上&#xff0c;但是在从服务器上的操作不会进入到主服务器中 环境准备 两台服务器&#xff0c;一主…

【Classical Network】Xception

文章目录深度可分离卷积Inception发展GoogleNetInception Networkinception V1inception V2inception V3inception V4Xception参考文章 经典卷积架构的PyTorch实现&#xff1a;Xception 参考文章 卷积神经网络结构简述&#xff08;二&#xff09;Inception系列网络 github 项目…

Springboot扩展点之InstantiationAwareBeanPostProcessor

前言前面介绍了Springboot的扩展点之BeanPostProcessor&#xff0c;再来介绍另一个扩展点InstantiationAwareBeanPostProcessor就容易多了。因为InstantiationAwareBeanPostProcessor也属于Bean级的后置处理器&#xff0c;还继于BeanPostProcessor&#xff0c;因此Instantiatio…

【Spring Cloud Alibaba】(二)微服务调用组件Feign原理+实战

系列目录 【Spring Cloud Alibaba】&#xff08;一&#xff09;微服务介绍 及 Nacos注册中心实战 本文目录系列目录前言什么是RPC&#xff1f;Feign和OpenFeign都是什么&#xff1f;HTTP调用 vs Feign(RPC)调用单独使用Feign实战Feign核心源码解读Feign整体设计架构Spring Clo…

PyQt5学习 阶段一

前言&#xff1a;PyQt5介绍PyQt是基于Digia公司强大的图形程序框架Qt的Python接口&#xff0c;由一组Python模块构成&#xff0c;它是一个创建GUI应用程序的工具包&#xff0c;由Phil Thompson开发。PyQt5的基本类&#xff1a;官方提供的帮助网址&#xff1a;https://www.river…

每天10个前端小知识 【Day 8】

前端面试基础知识题 1. Javascript中如何实现函数缓存&#xff1f;函数缓存有哪些应用场景&#xff1f; 函数缓存&#xff0c;就是将函数运算过的结果进行缓存。本质上就是用空间&#xff08;缓存存储&#xff09;换时间&#xff08;计算过程&#xff09;&#xff0c; 常用于…

macbook M1 Homebrew配置导致本机的Kafka启动失效

笔者想在macbook M1上通过Homebrew安装Kafka 整体流程为&#xff1a; 安装kafka brew install kafka 启动zookeeper brew services start kafka启动kafka brew services start kafka启动provider&#xff0c;创建一个jxztest的主题 kafka-console-producer --bootstrap-server…

金仓数据库物理备份和还原

物理备份和还原 物理备份指的是将数据库中的相关物理文件转存储到指定的备份文件中&#xff0c;KES支持sys_rman、sys_basebackup、cp等多种物理备份方法。 一、物理备份类型 1、冷备 &#xff08;1&#xff09;冷备也叫文件系统级别备份。 &#xff08;2&#xff09;备份时…

3D设计师的激情吐槽 我与甲方爸爸不得不说的故事

苦逼的玉树临风的设计师们&#xff0c; 总是会熬夜加班受尽甲方爸爸的 折磨 宠爱~ 每每这一刻我都想深情地问一句&#xff0c; 设计师们&#xff0c;你们还好吗&#xff1f;今天就让我来带着你们&#xff0c; 重温这些 噩梦 温情时刻吧&#xff01; - 1 - 他&#xff0c; 那个自…