You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mockito.spy()抛出SecurityException问题求助

解决Maven构建时的“class signer information does not match”安全异常

这个问题我之前帮团队排查过好几次,核心原因就是同一个包下的类被不同的签名证书签名了——Eclipse运行测试时可能没触发完整的签名校验,但Maven的install阶段会严格检查所有类的签名一致性,尤其是你引入JUnit和Mockito依赖后,很大概率是这些依赖里的某些类和你项目中同包的类签名冲突了。下面是几个针对性的解决方案:

  • 排查依赖树,定位冲突源头
    先在终端运行mvn dependency:tree命令,把所有依赖的层级、版本和所属模块列出来。重点关注和你项目包名重叠的依赖——比如如果你的项目有com.example.common包,而某个老版本的Mockito附属依赖里也有同名包的签名类,就会和你自己签名的类撞车。

  • 排除冲突的依赖模块
    如果找到了冲突的依赖,直接在pom.xml里给对应依赖加上<exclusions>标签,把带冲突类的模块排除掉。举个实际配置例子:

    <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-core</artifactId>
        <version>4.11.0</version>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <groupId>some.conflicting.group</groupId>
                <artifactId>conflicting-artifact</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
  • 限制Maven签名插件的作用范围
    你应该用的是maven-jarsigner-plugin吧?一定要确保它只签名你自己的项目代码,别把第三方依赖也签了。可以在插件配置里通过<includes>指定只包含你项目的类,避免误签依赖类:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jarsigner-plugin</artifactId>
        <version>3.3.0</version>
        <executions>
            <execution>
                <id>sign-project-jars</id>
                <goals>
                    <goal>sign</goal>
                </goals>
                <configuration>
                    <includes>
                        <include>com/yourcompany/**/*.class</include>
                    </includes>
                    <!-- 你的keystore等签名配置 -->
                </configuration>
            </execution>
        </executions>
    </plugin>
    

    另外记得给JUnit、Mockito这类测试依赖加上test scope,确保它们不会被打包到最终的签名JAR里。

  • 清理缓存后重新构建
    有时候本地Maven缓存里的依赖可能被错误篡改或签名,先运行mvn clean install -U,强制清理旧构建产物并更新依赖,确保所有类都是干净的未被污染的版本。

如果还是没解决,把mvn install的完整报错日志拉出来,重点看报错里提到的具体包名和类名——比如它会明确指出“xxx.class in package com.xxx has different signer than yyy.class”,根据这个类名直接去查是哪个依赖带进来的,精准解决就好。

内容的提问来源于stack exchange,提问作者Ravi B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:40:59