SpringBoot多级多模块聚合项目下maven打包报‘packaging‘ with value ‘jar‘ is invalid.

问题场景:

SpringBoot多级多模块项目中部分pom文件报红,mvn clean时报错:‘packaging’ with value ‘jar’ is invalid. Aggregator projects require ‘pom’ as packaging.


项目背景

项目是一个多级多模块项目,简单分为:1-2-3三级项目,2是1的子项目,3是2的子项目,这些在pom配置文件中都有说明:

  1. 1、2的pom文件中有通过modules标签去指向包含的子项目
  2. 2、3的pom没有使用parent标签去指向其父项目,都是直接指向spring-boot-starter-parent

原因分析:

通过报错提示可以得知:值为“jar”的“packaging”无效。聚合器项目需要“pom”作为包装。此时我做了几个动作去排查:

  1. 因为是第二级项目中的pom文件异常,所以我此时查看的是第一级项目中的pom文件配置,不过通过pom.xml文件可以得知第一级项目中已经配置了打包的配置文件是pom。
  2. 怀疑是parent标签指向的spring-boot-starter-parent的默认打包方式不对,但是查看之后发现也是对的。
  3. 重新编译,使用clean标签,报错。
  4. 查了一下百度,确实是只需要在pom文件中指定打包方式是pom就可以了,后来发觉估计是因为是多级项目导致,因为之前一级项目下的其他二级子模块并没有自己的第三级子模块,所以没有这个问题。

根本原因

在 Maven 项目中,如果没有在 pom.xml 文件中显式指定打包方式(packaging),Maven 会根据项目的类型自动选择一个默认值。对于普通的 Maven 项目(非聚合项目),默认的打包方式是 jar,因为大多数 Java 项目最终都会生成一个 JAR 文件作为输出工件。

这个默认值是在 Maven 的核心逻辑中硬编码的,不是在一个特定的配置文件或属性中指定的。Maven 在解析 pom.xml 文件并构建项目时,会检查是否设置了 标签。如果没有设置,Maven 就会使用默认的打包方式 jar。

对于聚合项目(aggregator project),情况则有所不同。聚合项目本身不产生输出工件,而是用来管理和构建一组子模块。因此,对于聚合项目,必须在 pom.xml 文件中显式设置 pom,以指定其为聚合项目。如果不这样做,而尝试使用默认的 jar 打包方式,就会导致上述异常。

总之,Maven 项目默认的打包方式 jar 是由 Maven 的内部逻辑决定的,而不是在某个配置文件或属性中指定的。而对于聚合项目,则必须在 pom.xml 中显式设置打包方式为 pom。


解决方案:

在存在三级子模块的二级子模块下指定打包格式是pom即可。

<packaging>pom</packaging>

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

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

相关文章

【系统架构设计师】- 知识点汇总(易错总结)

—————————————————————————————————— 一、函数依赖的推理规则&#xff1a; 1、自反律&#xff1a;若Y⊆X⊆U&#xff0c;则X→Y在R上成立。 2、增广律&#xff1a;若X→Y在R上成立&#xff0c;且Z⊆U&#xff0c;则XZ→YZ在R上也成立。 3、传…

Vue-Next-Admin:适配手机、平板、PC的开源后台管理模板

摘要&#xff1a;随着移动设备和PC的普及&#xff0c;为了满足不同设备的需求&#xff0c;开发一个能够自适应手机、平板和PC的后台管理系统变得至关重要。本文将介绍一个基于Vue3.x、Typescript、Vite、Element Plus等技术的开源模板库——Vue-Next-Admin&#xff0c;帮助开发…

FebHost:人工智能时代的新宠儿.AI域名

近年来,人工智能技术在各行各业迅猛发展,正在深刻改变着我们的生活。作为AI领域的专属域名,.AI域名正成为越来越多企业和个人的首选。 那么,.AI域名到底是什么呢?它是一种特殊的顶级域名(Top-Level Domain, TLD),于2013年由 安哥拉政府正式退出。与其他通用顶级域名如.com、.…

华为ensp路由器模拟ftp服务器访问

众所周知ensp的pc只有ping功能&#xff0c;ssh、telnet、ftp都无法实现&#xff0c;所以想实现需要更换为路由器 R1需要FTP到server的ftp服务 server的FTP配置就这些命令&#xff0c;主要的是路径&#xff0c;然后在网络可达的情况下就可以进行登录测试了 aaa local-user hu…

uniapp通过蓝牙传输数据 (ios)

在uni-app中&#xff0c;可以通过uni-ble&#xff08;uni-app官方提供的蓝牙插件&#xff09;来实现iOS设备上的蓝牙数据传输。 首先&#xff0c;确保已在uni-app的manifest.json文件中添加uni-ble插件的配置&#xff1a; "permission": { "scope.userLocati…

Windows power shell/cmd/shell/脚本

Windows power shell/cmd/shell/脚本 1、shell shell&#xff1a;shell脚本运行的环境&#xff0c;是一个概念不是特指 shell脚本&#xff1a;shell脚本就是将一系列命令按照一定的顺序保存到一个文本文件中&#xff0c;该文本文件被赋予执行权限&#xff0c;执行时依次执行…

【大模型】大模型 CPU 推理之 llama.cpp

【大模型】大模型 CPU 推理之 llama.cpp llama.cpp安装llama.cppMemory/Disk RequirementsQuantization测试推理下载模型测试 参考 llama.cpp 描述 The main goal of llama.cpp is to enable LLM inference with minimal setup and state-of-the-art performance on a wide var…

unity 使用Base64编码工具对xml json 或者其他文本进行加密 解密

Base64编码加密解密工具 这是一个加密解密的网页工具&#xff0c;别人可以把他加密后的字符串给你&#xff0c;然后你可以用代码解密出来&#xff0c; 或者自己对内容进行加密&#xff0c;解密处理。 /// <summary>/// Base64 解码/// </summary>string DecodeBase…

基于 NGINX 的 ngx_http_geoip2 模块 来禁止国外 IP 访问网站

基于 NGINX 的 ngx_http_geoip2 模块 来禁止国外 IP 访问网站 一、安装 geoip2 扩展依赖 [rootfxkj ~]# yum install libmaxminddb-devel -y二、下载 ngx_http_geoip2_module 模块 [rootfxkj tmp]# git clone https://github.com/leev/ngx_http_geoip2_module.git三、解压模…

55、美国德克萨斯大学奥斯汀分校、钱德拉家族电气与计算机工程系:通过迁移学习解决BCI个体差异性[不得不说,看技术还得是老美]

2024年2月5日跨被试最新文章&#xff1a; 德州州立大学奥斯汀分校研究团队最近的一项研究成果&#xff0c;通过非侵入式的脑机接口&#xff0c;可以让被试不需要任何校准就可以使用脑机接口设备&#xff0c;这意味着脑机接口具备了大规模被使用的潜力。 一般来说&#xff0c;…

02 删改查

文章目录 CartControllerCartMapperCartDButilCartMapper.xmlgeneratorConfig.xmlmybatis-config.xmlcart.jspproducts.jsp(忽略)pom.xml CartController package controller;import mapper.CartMapper; import org.apache.ibatis.session.SqlSession; import pojo.Cart; impor…

UE4 方块排序动画

【动画效果】 入动画&#xff1a; 出动画&#xff1a; 【分析】 入动画&#xff1a;方块动画排序方式为Z字形&#xff0c;堆砌方向为X和Y轴向 出动画&#xff1a;方块动画排序方式为随机 【关键蓝图】 1.构建方块砌体 2.入/出动画

web渗透测试漏洞复现:ZooKeeper未授权漏洞复现

web渗透测试漏洞复现 1. ZooKeeper未授权漏洞复现1.1 ZooKeeper简介1.2 ZooKeeper漏洞复现1.3 ZooKeeper漏洞修复建议1. ZooKeeper未授权漏洞复现 1.1 ZooKeeper简介 ZooKeeper 是一个分布式的、开源的协调服务,最初由雅虎开发,现隶属于 Apache 软件基金会,是Google的Chub…

Java pdfbox 给 PDF 添加文字和图片水印 并旋转45度

POM <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.27</version> </dependency> 代码&#xff1a; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdf…

人工智能+的广泛应用,已渗透到生活的方方面面

引言 随着科技的不断进步和人工智能技术的快速发展&#xff0c;我们正处于一个人工智能时代。人工智能不仅仅是一种技术&#xff0c;更是一种革命性的变革力量&#xff0c;它正在以前所未有的方式改变着我们的生活和工作方式。 人工智能&#xff08;AI&#xff09;指的是人工…

【容易不简单】love 2d Lua 俄罗斯方块超详细教程

源码已经更新在CSDN的码库里&#xff1a; git clone https://gitcode.com/funsion/love2d-game.git 一直在找Lua 能快速便捷实现图形界面的软件&#xff0c;找了一堆&#xff0c;终于发现love2d是小而美的原生lua图形界面实现的方式。 并参考相关教程做了一个更详细的&#x…

某音乐平台歌曲信息逆向之webpack扣取

逆向网址 aHR0cHM6Ly95LnFxLmNvbS8 逆向链接 aHR0cHM6Ly95LnFxLmNvbS9uL3J5cXEvc29uZ0RldGFpbC8wMDJkdzRndjFabWlHdA 逆向接口 aHR0cHM6Ly91Ni55LnFxLmNvbS9jZ2ktYmluL211c2ljcy5mY2c 逆向过程 请求方式&#xff1a;POST 逆向参数 sign zzbd8c72309rdslvlnjwk8pthj2lw462f12…

ubuntu-server部署hive-part3-安装mysql

参照 https://blog.csdn.net/qq_41946216/article/details/134345137 操作系统版本&#xff1a;ubuntu-server-22.04.3 虚拟机&#xff1a;virtualbox7.0 部署mysql 下载上传 下载地址 https://downloads.mysql.com/archives/community/ 以root用户上传&#xff0c;/usr/loc…

yolov5 旋转数据增强

目录 安装数据增强库&#xff1a; 指定旋转90度增强 图片在-180度到180度之间任意旋转 安装数据增强库&#xff1a; pip install albumentations 指定旋转90度增强 import albumentations as A# 在你的数据增强管道中加入下面的旋转增强 transform A.Compose([...A.Rotat…

Three.js阴影贴图

生成阴影贴图的步骤如下&#xff1a; 从光位置视点&#xff08;阴影相机&#xff09;创建深度图。从相机的角度进行屏幕渲染在每个像素点&#xff0c;将阴影相机的MVP矩阵计算出的深度值与深度图值进行比较如果深度图值较低&#xff0c;则说明该像素点存在阴影 &#xff0c;因…