macos系统(m2max)在idea(2024.2专业版和教育版都试过)上本地编译代码通过(本地直接使用编译好的jar包 使用命令启动:java -jar --debug 命令启动报错循环依赖);
但是使用编译后的jar包发布线上后,启动后报错循环依赖,同样环境和项目win10上编译后正常发布线上并启动。。。。。
排查问题:
(1)排查了maven(使用3.9.2)和jdk(1.8)并没有发现什么问题
(2)尝试过mvn clean 后 mvn install和清除idea自带的缓存,无效
(3)怀疑是macos系统或者idea的mac版本自带的问题
解决方案:
(1)看网上说是mac打包后的jar包解压后在重新打包一下就可以,然而我试了并不行;
(2)还有说是加@lazy懒加载,结果是也不行....
(3)还有说和springboot的版本有关系,mac在3.5之后就不允许这种循环依赖问题,也不确定是不是这样。。。
希望能解决下macos在idea打包问题,各位大神有遇到这种问题吗??
针对您描述的问题,即在MacOS上使用IDEA编译的Jar包在Linux环境下运行时出现循环依赖错误,而相同代码在Windows环境下编译则没有问题,这里有几个可能的解决方向和检查点:
首先确保在MacOS上的Maven构建配置(如pom.xml)与Windows上完全一致。特别是检查任何可能影响类加载顺序或打包方式的插件配置,如Spring Boot Maven Plugin的layout
属性。
jar tvf your-jar-file.jar
命令来列出Jar包内容。Class-Path
和Main-Class
是否正确,确保没有路径差异导致的问题。mvn clean
外,还可以尝试删除~/.m2/repository
下的相关依赖缓存,以确保没有旧的或损坏的依赖项影响构建。希望这些建议能帮助您解决问题!
问题内容: 我正在将Java项目从Ant迁移到Gradle。我认为最好的解决方案是使用Gradle的多项目支持,但是我找不到摆脱循环依赖的方法。 原始项目已设置为具有以下布局: 之间的关系,并且,是棘手的。将取决于或根据配置文件。同样,无论配置属性如何,都依赖和。并且永远不会在同一时间建造。 我认为一种快速的解决方案是在: 接下来,我想过要找到一种方法来使之更接近公正工作。这导致我想到了这一点:
问题内容: 按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我最近开始使用Linux作为主要操作系统。在Linux中为C和C ++设置完整的编程环境需要什么工具? 问题答案: 标准的东西: 编译器工具gcc,gdb等 某
本文向大家介绍详解Spring Bean的循环依赖解决方案,包括了详解Spring Bean的循环依赖解决方案的使用技巧和注意事项,需要的朋友参考一下 如果使用构造函数注入,则可能会创建一个无法解析的循环依赖场景。 什么是循环依赖 循环依赖其实就是循环引用,也就是两个或则两个以上的bean互相持有对方,最终形成闭环。比如A依赖于B,B依赖于C,C又依赖于A。如下图: 注意,这里不是函数的循环调用,
问题内容: 我有一个模块化的maven项目,其中两个模块“ BIZ”和“ EJB”包含如下内容: 如您所见, “ EJB”依赖于“ BIZ”, 因为它使用 MyClassX (实际上,它使用了BIZ的几种类别)。这就是 ImplFactory 使用反射实例化 InterfaceImpl 的原因。问题是 cl.newInstance() 将抛出 ClassCastException, 因为这两个模块
我要安装bzip2这个软件包,一直出现下面这个错误: 做过很多命令,包括安装那个目录,但都没有用 我希望得到解答,谢谢各位大佬
Linux运行环境 QEMU用于模拟一台x86计算机,让ucore能够运行在QEMU上。为了能够正确的编译和安装 qemu,尽量使用最新版本的qemu,或者os ftp服务器上提供的qemu源码:qemu-1.1.0.tar.gz)。目前 qemu 能够支持最新的 gcc-4.x 编译器。例如:在 Ubuntu 12.04 系统中,默认得版本是 gcc-4.6.x (可以通过 gcc -v 或者