Maven 父子模块的 pom.xml 文件编写

devtools/2024/10/9 11:19:53/

今天在写课内的实验作业的时候,三个内容要使用的依赖是一样的,于是想使用父子模块来玩玩。

父模块 pom.xml 书写

  1. 打包方式  
    <packaging>pom</packaging>
  2. 聚合子模块
    <!-- 聚合子模块 -->
    <modules><module>../one</module><module>../two</module>
    </modules>

完整代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>parent</artifactId><version>1.0-SNAPSHOT</version><packaging>pom</packaging><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target></properties><dependencies><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-common</artifactId><version>3.1.4</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-mapreduce-client-core</artifactId><version>3.1.4</version></dependency></dependencies><!-- 聚合子模块 --><modules><module>../one</module><module>../two</module></modules></project>

子模块 pom.xml 文件书写

  1. 父模块信息填写
    <parent><groupId>org.example</groupId><artifactId>parent</artifactId><version>1.0-SNAPSHOT</version><relativePath>../parent/pom.xml</relativePath>
    </parent>
  2. 自已的信息填写
    <artifactId>one</artifactId>
    <packaging>jar</packaging>
    <version>1.0-SNAPSHOT</version>

如何多个模块

先创建项目,再把项目引入 moudle 里

构建模块

在父模块的根目录下执行以下命令来构建所有模块:

mvn clean install

这将会构建父模块以及所有在 <modules> 中定义的子模块

打包依赖的库,自动检测主类

因为通过 maven 依赖管理的父依赖是不会打包进子模块的,可以利用插件打包进去。

如果不是 springboot 项目,还得指明主函数

如果是 springboot 项目,直接
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><executions><execution><goals><goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中 --></goals></execution></executions></plugin></plugins></build>
如果是非 springboot 项目,在 pom.xml 文件里
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>3.2.4</version><executions><execution><phase>package</phase><goals><goal>shade</goal></goals><configuration><transformers><transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"><mainClass>WordCountDriver.java</mainClass><!-- 主类的位置,例如上图文件,主类配置应为: --><!-- <mainClass>top.nihilwater.App</mainClass> --></transformer></transformers></configuration></execution></executions></plugin></plugins></build>

或者

打开 project struct 


http://www.ppmy.cn/devtools/123345.html

相关文章

C#导出Excel表格,实现跨行/跨列...支持各种组合样式

C#生成Excel跨行/跨列…支持各种样式 效果示例 基本能满足各种样式需求 安装包 首先在项目中安装包&#xff1a;DocumentFormat.OpenXml 使用 部分使用方法 //Cells[3, 1, 3, 2]&#xff1a;这是用于指定 Excel 单元格的范围。//3, 1&#xff1a;表示开始的单元格&#…

【Kubernetes】常见面试题汇总(四十八)

目录 108.考虑一家拥有非常分散的系统的跨国公司&#xff0c;希望解决整体代码库问题。您认为公司如何解决他们的问题&#xff1f; 109.我们所有人都知道从单服务到微服务的转变从开发方面解决了问题&#xff0c;但在部署方面却增加了问题。公司如何解决部署方面的问题&#x…

上海亚商投顾:创业板指大涨超17% 两市成交额超3.45万亿创

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 沪指昨日大幅高开后回落&#xff0c;创业板指大涨超17%&#xff0c;续创历史单日最大涨幅。券商股再掀涨停潮&…

java -jar 指定配置 logback.xml

APP_NAMEruoyi-admin.jar APP_CONFIGconfig/application.yml,config/application-druid.yml LOGBACK_CONFIGconfig/logback.xml#启动方法 start(){is_existif [ $? -eq "0" ]; thenecho "${APP_NAME} is already running. pid${pid} ."elsenohup java -Xm…

C#多线程基本使用和探讨

线程是并发编程的基础概念之一。在现代应用程序中&#xff0c;我们通常需要执行多个任务并行处理&#xff0c;以提高性能。C# 提供了多种并发编程工具&#xff0c;如Thread、Task、异步编程和Parallel等。 Thread 类 Thread 类是最基本的线程实现方法。使用Thread类&#xff0…

如何通过Kubectl 重启Pod的六种方法

大家可能都知道 kubectl 其实没有 restart pod 这个命令&#xff0c;这个主要是由于在 k8s 中pod 的管理属于rs 等控制器&#xff0c;并不需要运维手动维护&#xff0c;但有时候&#xff0c;我们修改了configmap 的配置文件后&#xff0c;希望重启pod 加载配置&#xff0c;此时…

Unity3D游戏的内存控制详解

Unity3D是一款流行的游戏引擎&#xff0c;支持多种平台&#xff0c;包括PC、移动设备和VR等。随着游戏的复杂性不断提高&#xff0c;Unity3D的内存管理变得尤为重要。本文将详细介绍Unity3D游戏中的内存控制技术&#xff0c;包括自动内存管理、对象池、延迟加载资源和手动清理资…

【Power Compiler手册】13.UPF多电压设计实现(13)

井偏置支持 一些工艺技术允许将专用的电压供电,而不是常规的轨电压,应用于芯片的n阱和p阱区域。对阱施加偏置电压会改变阱中晶体管的阈值电压,从而影响性能和漏电流。 Power Compiler工具提供了一个可选模式,使用UPF命令指定n阱和p阱偏置供电基础设施。在此模式下,工具会…