powermock after log4j2.3 upgrade 无法重新配置 JMX java.lang.LinkageError

2022-09-03 12:49:13

我正在将log4j从1.x升级到2.3。设置 maven 依赖项后,我的项目正在构建,应用程序运行良好。

但是在建立时,在测试目标低于已经存在的各种单元测试类中提到的错误。

我可以通过使用@PowerMockIgnore找到解决方法。但是担心更改已经写入的所有100多个文件。

ERROR StatusLogger Could not reconfigure JMX java.lang.LinkageError: loading constraint violation: loader "org/powermock/core/classloader/MockClassLoader@5fa95fa9" previously initiated loading for a different type with name "javax/management/MBeanServer" defined by loader "com/ibm/oti/vm/BootstrapClassLoader@7a5c7a5c".

答案 1

@see Mockito + PowerMock Linkage在模拟系统类时出错

尝试将此注释添加到测试类中:

@PowerMockIgnore("javax.management.*")

为我工作。

也为我工作


答案 2

如果您有许多测试类并使用版本 1.7.0 中的 powermock,则可以指定全局配置。请参阅电源模拟配置,它带有一个示例项目,其中演示了其用法,请参阅示例

配置文件应具有:

powermock.global-ignore=javax.management.*

推荐