您好!欢迎来到源码码网

Mockito is currently self-attaching to enable the inline-mock-maker. This will no longer work in future releases of the JDK. Please add Mockito as an agent to your build what is described in Mockito’s documentation

  • 源码教程
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2025-04-21 15:28
  • 阅读:1186

这个问题是由于Mockito在尝试通过自我附加(self-attaching)的方式启用inline-mock-maker时触发的警告。随着JDK版本的升级,这种机制可能不再被支持,需要显式配置Mockito作为Java代理(agent)来解决问题。以下是逐步解决方案:

1. 确认依赖版本

首先检查项目中Mockito的版本。较新的Mockito版本可能已优化该问题。建议使用Mockito 3.12.x及以上版本(推荐最新稳定版)。

Maven 项目:

在 pom.xml 中升级Mockito版本:

<properties>
    <mockito.version>5.11.0</mockito.version> <!-- 使用最新版本 -->
</properties>

<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-core</artifactId>
    <version>${mockito.version}</version>
    <scope>test</scope>
</dependency>

Gradle 项目:

在 build.gradle 中升级Mockito:

testImplementation 'org.mockito:mockito-core:5.11.0' // 使用最新版本

2. 配置Mockito作为Java代理

需要在测试运行器中添加Java代理参数,使Mockito能够正确附加到JVM。

Maven 配置:

在 pom.xml 的 maven-surefire-plugin 中添加代理参数:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>3.2.0</version> <!-- 确保版本支持参数配置 -->
            <configuration>
                <argLine>
                    -javaagent:"${settings.localRepository}/org/mockito/mockito-agent/${mockito.version}/mockito-agent-${mockito.version}.jar"
                </argLine>
            </configuration>
        </plugin>
    </plugins>
</build>

Gradle 配置:

在 build.gradle 的测试任务中添加JVM参数:

test {
    jvmArgs "-javaagent:${classpath.find { it.name.contains("mockito-agent") }.absolutePath}"
}

3. 排除冲突依赖(如需要)

如果项目间接依赖了旧版Mockito(例如通过Spring Boot Starter),可以通过排除旧依赖强制使用新版本。

Maven 排除依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
    <exclusions>
        <exclusion>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
        </exclusion>
    </exclusions>
</dependency>

Gradle 排除依赖:

testImplementation('org.springframework.boot:spring-boot-starter-test') {
    exclude group: 'org.mockito', module: 'mockito-core'
}

4. 验证配置

运行测试命令(如 mvn test 或 gradle test),观察是否仍有警告。如果配置正确,警告应消失且测试正常通过。

5. 替代方案(不推荐)

如果不需要Mockito的inline-mock-maker功能(例如不Mock final类或方法),可以移除mockito-inline依赖:

<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-inline</artifactId>
    <version>${mockito.version}</version>
    <scope>test</scope>
</dependency>


特别声明:
1、如无特殊说明,内容均为本站原创发布,转载请注明出处;
2、部分转载文章已注明出处,转载目的为学习和交流,如有侵犯,请联系客服删除;
3、编辑非《源码码网》的文章均由用户编辑发布,不代表本站立场,如涉及侵犯,请联系删除;
全部评论(0)
推荐阅读
  • 设备全生命周期智能巡检管理系统
  • 设备全生命周期智能巡检管理系统
  • 一、项目概述项目名称:设备全生命周期智能巡检管理系统核心目标:通过一机一码(二维码)标准化巡检流程,确保不漏检、不错检。建立并维护每台设备的完整数字档案(涵盖基础信息、巡检、维修、保养全记录)。实现故障的快速上报、跟踪与闭环处理。将线下纸质记录电子化、流程化,实现数据可追溯、可分析。目标用户:现场巡检/操作人员:使用移动端进行日常巡检与记录。设备管理员/维修工程师:处理故障、执行维修保养、管理设备状态。部门主管/管理层:查看报
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-06 11:31
  • 阅读:76
  • 同城跑腿预约系统功能需求文档
  • 同城跑腿预约系统功能需求文档
  • 1.文档概述项目名称:同城跑腿预约系统核心目标:为用户提供便捷、可靠的同城即时物品取送、代办服务,并为服务提供者(师傅)提供高效的订单匹配与管理工具,实现线上线下服务闭环。目标用户:用户端:有物品取送、购买、代办需求的个人及企业用户。师傅端:提供跑腿服务的骑手、司机或自由职业者。核心价值:便捷预约、智能调度、全程追踪、安全可靠。2.总体业务流程用户发布订单 -> 系统智能派单/师傅抢单 
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-06 11:18
  • 阅读:206
  • 百度搜索垃圾广告霸屏,市场份额被蚕食?
  • 百度搜索垃圾广告霸屏,市场份额被蚕食?
  • 进入2026年,随着AI的崛起,中国传统搜索引擎市场的用户占比和竞争格局发生着明显的改变。需要强调的是,传统“搜索”的定义正在被颠覆,分析必须从“搜索行为”和“流量入口”两个维度来看。核心结论百度依然是综合搜索的龙头,但份额持续被蚕食,市场已从“一家独大”变为“一超多强”。“搜索去中心化”是最大趋势。越来越多用户,尤其是年轻群体,不再打开百度,而是直接在抖音、微信、淘宝、小红书等超级App内进行“站内搜索”来获取信息、商品和服务。微软必
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-06 10:56
  • 阅读:183
  • AI编程对当前程序员就业环境的影响:挑战、机遇与未来重塑
  • AI编程对当前程序员就业环境的影响:挑战、机遇与未来重塑
  • 一、影响全景:行业正在经历“技术性重构”直接冲击领域基础代码生成:重复性编码任务(如CRUD操作、简单API开发)效率提升50-80%代码审查与调试:AI辅助定位bug、优化代码结构,减少人工排查时间文档与测试:自动生成技术文档、测试用例成为新常态入门级岗位需求变化:对初级程序员“代码搬运”能力需求下降,更重问题分析与架构理解数据对比(2023-2024行业调查)使用AI工具的开发者任务完成速度平均提升35%63%的企业调整了初级工程师
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-06 10:41
  • 阅读:225
  • SSL证书有哪些类型,应该如何选择
  • SSL证书有哪些类型,应该如何选择
  • SSL证书根据验证级别、保护域名数量和功能特性主要分为以下几类。选择合适的证书需综合考虑安全需求、预算、品牌形象和技术兼容性。一、SSL证书的主要类型1.按验证级别分类(从低到高)2.按保护域名数量分类3.按证书功能/特性分类标准SSL证书:基础加密功能。代码签名证书:用于软件/代码签名,验证开发者身份(如Windows驱动、APP)。邮件证书(S/MIME):加密和签名电子邮件。客户端证书:用于双向认证(如VPN、企业内网)。二
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-06 10:35
  • 阅读:143
联系客服
源码代售 源码咨询 素材咨询 联系客服
029-84538663
手机版

扫一扫进手机版
返回顶部