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

news/2024/10/15 10:05:42/

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

父模块 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/news/1539378.html

相关文章

互联网协议(IP)中最常用的端口

80 端口和 443 端口是互联网协议&#xff08;IP&#xff09;中最常用的两个端口&#xff0c;分别用于 HTTP 和 HTTPS 通信。以下是它们的作用、区别以及相关背景信息&#xff1a; 80 端口和 443 端口的作用 80 端口&#xff1a; 用于 HTTP&#xff08;HyperText Transfer Prot…

AOT漫谈专题(第三篇): 如何获取C#程序的CPU利用率

一&#xff1a;背景 1. 讲故事 上篇聊到了如何对AOT程序进行轻量级的APM监控&#xff0c;有朋友问我如何获取AOT程序的CPU利用率&#xff0c;本来我觉得这是一个挺简单的问题&#xff0c;但一研究不是这么一回事&#xff0c;这篇我们简单的聊一聊。 二&#xff1a;如何获取C…

LLM | Tokenization 从原理与代码了解GPT的分词器

声明&#xff1a;以上内容全是学习Andrej Karpathy油管教学视频的总结。 --------------------------------------------------------------------------------------------------------------------------------- 大家好。在今天我们学习llm中的Tokenization&#xff0c;即分…

注册安全分析报告:北外网校

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…

【机器学习】朴素贝叶斯算法|商品评论情感分析案例介绍及代码实现

文章目录 朴素贝叶斯算法朴素贝叶斯算法介绍概率数学基础复习朴素贝叶斯算法-利用概率值进行分类的一种机器学习算法贝叶斯公式朴素贝叶斯算法拉普拉斯平滑系数 朴素贝叶斯API案例分析流程数据集代码实现运行结果 朴素贝叶斯算法 朴素贝叶斯算法介绍 概率数学基础复习 条件概…

Allegro PCB中过孔的整体替换

Cadence Allegro PCB中过孔的整体替换 在PCB设计过程中&#xff0c;之前是使用的小的过孔&#xff0c;后面需要替换成大的过孔&#xff0c;一个一个去替换过孔非常麻烦的&#xff0c;这里&#xff0c;讲解一下如何去整体的替换过孔&#xff0c;具体的操作方法如下所示&#xf…

【进阶OpenCV】 (13)--视频物体跟踪

文章目录 物体跟踪一、跟踪器二、代码实现1. 创建CSRT跟踪器实例2. 打开视频文件3. 主循环3.1 读取每一帧3.2 设置跟踪目标3.3 更新跟踪器&#xff0c;获取对象位置3.4 显示视频每一帧 4. 释放资源和关闭窗口5. 完整代码展示 总结 物体跟踪 本篇我们来介绍&#xff0c;如何对移…

八:linux之mysql57读写分离mysql-proxy

linux之mysql57读写分离mysql-proxy 1 https://downloads.mysql.com/archives/proxy/ 去下载或者 https://cdn.mysql.com/archives/mysql-proxy/mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gz 解压 tar -zxvf mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gz 2 默…