解决多模块项目报错,找不到程序包

news2024/11/26 17:36:19

本周,我遇到了一个常见的错误——“找不到程序包”。这个错误是由于模块间的依赖关系没有正确配置导致的。经过一系列的尝试和排查,我最终找到了解决问题的方法。下面,我将详细记录这次问题的处理过程,并总结其中的经验教训。

问题描述

在之前的项目开发中,由于各个模块之间的交互较少,没有出现引用其他模块中类的问题,因此这个问题一直没有被发现。现在,我们有两个模块,分别是yz-service-pay和yz-service-promotion。
在这里插入图片描述
其中,yz-service-pay模块需要使用yz-service-promotion模块中的Promotion类。

@Override
public void pay(Long uid, Long amount, String codes, HttpServletResponse response) {
	PromotionCode promotionCode = PromotionCode.builder().build();
    // 省略
}

在先后运行mvn clean、mvn compile、mvn install命令时,mvn install阶段报错,提示“程序包找不到”。这意味着yz-service-pay模块无法找到yz-service-promotion模块中的Promotion类。
在这里插入图片描述

尝试解决办法

针对这个问题,我尝试了以下几种解决方法:

1、修改包名:一开始我认为是包名的问题,导致程序包加载不出来。于是,我尝试将所有模块的包名最后加上模块名,以区分不同的模块。然而,修改后运行仍然报同样的错误。在这里插入图片描述
2、尝试网上方法:我搜索了网上的解决方案,尝试了重载项目(据说是打包依赖顺序的问题)、更换Maven源等方法,但都没有解决问题。
3、在被依赖模块添加配置:最后,我尝试在被依赖的yz-service-promotion模块的pom.xml文件中添加相关配置。由于我的Maven插件已经存在,我只需添加特定的依赖关系配置即可。

在这里插入图片描述
经过上述配置后,我重新运行了mvn clean、mvn compile、mvn install命令,这次成功编译并安装了所有模块,问题得到了解决。

为什么要加这个配置项,来自文心一言

在这里插入图片描述

总结

其实,第三种方法一开始我就找到了,但由于我感觉这个方法可能不起作用,所以一直没有尝试。结果,这个bug从周二开始出现,一直拖到周天才得以解决,白白浪费了一周的时间。这次经历让我深刻认识到,在解决bug时不能抱有侥幸心理,应该尝试所有可能的解决方案,直到找到真正的问题所在。

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

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

相关文章

C/C++ 之 GSL 数学运算库使用笔记

Part.I Introduction 本文主要记录一下笔者使用 GSL 过程当中所做的一些笔记。 Chap.I 传送门 一些传送门 GSL源码(CMakeList 版本-Windows)GSL源码(configure 版本-Linux)GSL 在线文档GSL 文档下载 Chap.II GSL 简介 GSL 全…

使用通用内部函数对代码进行矢量化

返回:OpenCV系列文章目录(持续更新中......) 上一篇:OpenCV 如何使用 XML 和 YAML 文件的文件输入和输出 下一篇:OpenCV系列文章目录(持续更新中......) ​ 目标 本教程的目标是提供使用通用内…

网络基础(二)——序列化与反序列化

目录 1、应用层 2、再谈“协议” 3、网络版计算器 Socket.hpp TcpServer.hpp ServerCal.hpp ServerCal.cc Protocol.hpp ClientCal.cc Log.hpp Makefile 1、应用层 我们程序员写的一个个解决我们实际问题,满足我们日常需求的网络程序,都是在…

书生·浦语2.0(InternLM2)大模型实战--Day01 趣味 Demo | 部署InternLM2-Chat-1.8B模型

课程介绍 了解完书生浦语InternLM2大模型实战–基本认知 后,就可以做 Homework-demo 啦 Day01的作业基本是按照GitHub链接完成 GitHub – 轻松玩转书生浦语大模型趣味 Demo 作业截图如下 基本作业是实战第一部分 进阶作业的后两个是实战的的第三、四部分 我把进阶…

【STM32 HAL库SPI/QSPI协议学习,基于外部Flash读取】

1、SPI协议 简介 SPI 协议是由摩托罗拉公司提出的通讯协议 (Serial Peripheral Interface),即串行外围设备接口,是一种高速全双工的通信总线。它被广泛地使用在 ADC、LCD 等设备与 MCU 间,要求通讯速率较高的场合。 通信方式:同…

编程语言|C语言——C语言操作符的详细解释

这篇文章主要详细介绍了C语言的操作符,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 一、基础 1.1 算数操作符 - * / % - * / 这些操作符是我们…

Head First Design Patterns -代理模式

什么是代理模式 代理模式为另一个对象提供替身或者占位符,以便控制客户对对象的访问,管理访问的方式有很多种。例如远程代理、虚拟代理、保护代理等。 远程代理:管理客户和远程对象之间的交互。 虚拟代理:控制访问实例化开销大的对…

Unity类银河恶魔城学习记录11-10 p112 Items drop源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili ItemObject_Trigger.cs using System.Collections; using System.Collecti…

金融衍生品市场

金融衍生品市场 衍生金融品的作用衍生金融工具远期合约期货合约期权 衍生金融品的作用 套期保值(Hedging) 组合多头头寸(long position)与空头头寸(short position)例:股票与股指期货 投机 衍生金融工具 远期合约 定义:在将来…

Java基础入门--面向对象课后题(1)

某公司正进行招聘工作,被招聘人员需要填写个人信息,编写“个人简历”的封装类Resume,并编写测试类进行实现。类图及输出效果如下。 类名:Resumename : String (private)sex : String (private)age : int (private)Resume( ) // 没…

记录实现水平垂直居中的5种方法

记录块级元素实现水平垂直居中的方法&#xff0c;效果如图。 <div class"parent"><div class"child">居中元素</div> </div><style> .parent {position: relative;width: 600px;height: 300px;background-color: #679389; …

【安全用电管理系统的应用如何保证用电安全】Acrel-6000安科瑞智慧安全用电解决方案

政策背景 国家部委 ※2017年5月3日国务院安委会召开电气火灾综合治理工作视频会议&#xff0c;决定在全国范围内组织开展为期3年的电气火灾综合治理工作。 公安部领导 ※公安部副部长李伟强调&#xff1a;向科技要战斗力&#xff0c;加快推进“智慧消防”建设不断提升火灾防控…

第四篇:3.3 无效流量(Invalid traffic) - IAB/MRC及《增强现实广告效果测量指南1.0》

翻译计划 第一篇概述—IAB与MRC及《增强现实广告效果测量指南》之目录、适用范围及术语第二篇广告效果测量定义和其他矩阵之- 3.1 广告印象&#xff08;AD Impression&#xff09;第三篇广告效果测量定义和其他矩阵之- 3.2 可见性 &#xff08;Viewability&#xff09;第四篇广…

Spring Web MVC的入门学习(一)

目录 一、什么是 Spring Web MVC 1、MVC 定义 二、学习Spring MVC 1、项目准备 2、建立连接 2.1 RequestMapping 注解的学习 2.2 RequestMapping 使用 3、请求 3.1 传递单个参数 3.2 传递多个参数 3.3 传递对象 3.4 后端参数重命名&#xff08;后端参数映射&#xf…

Canvas实现圆点动画

示例效果图&#xff1a; 话不多说直接上代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><t…

[linux初阶][vim-gcc-gdb] TwoCharter: gcc编译器

目录 一.Linux中gcc编译器的下载与安装 二.使用gcc编译器来翻译 C语言程序 ①.编写C语言代码 ②翻译C语言代码 a.预处理 b.编译 c.汇编 d.链接 ③.执行Main 二进制可执行程序(.exe文件) 三.总结 一.Linux中gcc编译器的下载与安装 使用yum命令(相当于手机上的应用…

Flutter 开发学习笔记(2):第一个简单的Flutter项目(下)

文章目录 前言官方Flutter案例侧边栏添加代码初始化展示效果 子组件私有数据空间导航栏转为有状态WidgetsetState手动转换页面实现效果 响应式动态切换宽度添加收藏夹&#xff0c;跨Widget传数据实现效果 完整代码后续进阶效果总结 前言 接着继续上一章的内容 官方Flutter案例…

C++ 项目:使用 GSL 数学运算库 C++ 调用Python

文章目录 Part.I IntroductionChap.I CMakeListsChap.II ExportLibGSL.hChap.III test_python.cpp Part.II GSL 使用方法Part.III C 调用 Python 使用方法相关博客 Part.I Introduction 本项目是一个使用 GSL 的小项目&#xff0c;还有 C 调用 Python。项目虽简单&#xff0c;…

2024软件设计师备考讲义——(6)

信息安全与网络安全 一、信息与信息系统安全 1.信息安全含义及属性 含义是保密性、完整性、可用性其他属性如&#xff1a;真实性、可核查性、不可抵赖性、可靠性 2.安全需求 物理安全&#xff1a;物理设备和环境网络安全&#xff1a;网络攻击和入侵系统安全&#xff1a;操作…

[SWPUCTF 2021 新生赛]crypto5(小明文攻击)

题目&#xff1a; 直接暴力破解&#xff1a; from Cryptodome.Util.number import * import gmpy2 flag 251667516535309413648396638468065433877208653392633709079856557751521873194647157371165991714772070474300653458826262598807568390941796270326238953302426553…