news 2026/7/10 18:11:27

Failed to execute goal org.codehaus.mojo:exec-maven-plugin:3.6.3:execon project ruoyi-modules-syste

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Failed to execute goal org.codehaus.mojo:exec-maven-plugin:3.6.3:execon project ruoyi-modules-syste

一、报错现象

Failed to execute goal org.codehaus.mojo:exec-maven-plugin:3.6.3:exec on project ruoyi-modules-system: Command execution failed. Process exited with an error: 1

Maven 只是执行器,真正的问题在 Spring Boot 启动阶段。应用没起来,Maven 才以退出码 1 结束。


二、两类最容易误导的日志

误导点 1:dynamic-datasource initial loaded [0/1] datasource

这条日志是判断 Nacos 配置是否生效的关键指标,应优先看:

日志内容

含义

下一步

loaded [0] datasource

Nacos 里数据源配置没加载进来

查 Nacos 连通性、YAML 解析、编码问题

loaded [1] datasource, primary named [master]

数据源配置已生效

数据源问题可排除,转查 MyBatis / 业务配置

分析思维:

看到 MyBatis / Mapper 报错 ↓ 先往回看数据源日志(不要直接改 Mapper) ↓ [0] datasource → 根因在 Nacos 配置未注入(编码、YAML、Data ID) [1] datasource → Nacos 基础配置已 OK,再查 MyBatis 专属配置

典型陷阱:看到[1] datasource就认为「全都好了」,但MyBatis 的mapper-locationstype-aliases-package与数据源在同一份 Nacos YAML 里。若之前是[0]阶段,修复编码后变成[1],说明 Nacos 已能解析;若 MyBatis 仍报错,再单独核对别名、包路径,不要回头怀疑 Mapper 接口或 XML 写错


误导点 2:Invalid bound statement: com.ruoyi.system.mapper.SysConfigMapper.selectConfigList

这类报错非常像代码问题,容易让人去改 Mapper,实际上经常是配置未加载的连锁反应

Nacos YAML 解析失败(UTF-8/GBK) ↓ mybatis.mapper-locations 未生效 ↓ Mapper 接口能扫描到(@MapperScan 仍工作) Mapper XML 没被加载进 SqlSessionFactory ↓ 调用 selectConfigList() 时报: Invalid bound statement (not found): ...SysConfigMapper.selectConfigList

为什么容易误判:

表象

容易得出的错误结论

实际情况

接口里有selectConfigList

方法名写错

方法名没问题

XML 里有对应<select id="selectConfigList">

XML 路径或 id 写错

XML 本身没问题

target/classes/mapper/.../SysConfigMapper.xml存在

编译/打包问题

资源已在 classpath

报错指向具体 Mapper 方法

要改 Java/XML

根因是 MyBatis 没扫到 XML

正确排查顺序:

  1. dynamic-datasource[0]还是[1]
  2. 看有没有MalformedInputException/YAMLException
  3. 确认 Nacos 里mybatis.mapper-locations是否生效
  4. 最后才核对 Mapper 接口与 XML(通常无需改代码)

中间还出现过Could not resolve type alias 'SysDept',属于同一链条:type-aliases-package配错(如只写com.ruoyi.system.domain),与selectConfigList找不到是同类配置问题,不是实体类缺失。


三、完整排查思维链路

Maven BUILD FAILURE ↓ 看 Spring 启动日志(不看 Maven 本身) ↓ ┌─ dynamic-datasource loaded [0] ? │ ↓ 是 │ Nacos 配置未生效 → 查 YAMLException / 编码 / Data ID │ ↓ │ 连锁:无数据源 + 无 mapper-locations │ ↓ │ 误导性报错:SysConfigMapper.selectConfigList not found │ └─ dynamic-datasource loaded [1] ? ↓ 是 数据源 OK,继续看 MyBatis ↓ SysDept / selectConfigList 等报错 ↓ 查 type-aliases-package、mapper-locations(仍在 Nacos 同一份配置里) ↓ 一般不用改 Mapper 代码

四、根因说明

1. Nacos 配置依赖

本地bootstrap.yml只负责连 Nacos,业务配置在远程:

配置项

作用

spring.datasource.dynamic

数据源(决定[0]还是[1]

mybatis.mapper-locations

决定 XML 是否加载(影响selectConfigList等)

mybatis.type-aliases-package

决定SysDept等别名(应用com.ruoyi.system

spring.cloud.gateway.routes

网关路由(影响/auth/login404)

任意环节解析失败,都会引发下游「像代码错了」的报错。

2. UTF-8 编码问题

  • Windows 默认常为GBK
  • Nacos 配置含中文注释(如# spring配置# 认证中心
  • 解析触发MalformedInputException整份 YAML 失效
  • 表现为[0] datasource+ 各类 MyBatis BindingException

3. 网关 404 同一性质

/auth/login返回 404 且 auth 无日志 →ruoyi-gateway-dev.yml路由未加载,与 system 模块是同一类 Nacos 编码问题


五、解决方案

方案 A:JVM 强制 UTF-8

各服务 VM options 添加:

-Dfile.encoding=UTF-8

方案 B:Nacos 配置去除中文

*-dev.yml删除中文注释,关键项示例:

mybatis: type-aliases-package: com.ruoyi.system mapper-locations: classpath*:mapper/**/*.xml

方案 C:IDE 编码统一

File Encodings全部UTF-8

方案 D:命名空间

未配namespacepublic,无需额外选择;保证 Data ID 为{application.name}-dev.yml即可。


六、验证清单

  • MalformedInputException
  • dynamic-datasource initial loaded [1] datasource(不是[0]
  • Invalid bound statement: ...SysConfigMapper.selectConfigList
  • Could not resolve type alias 'SysDept'
  • 网关/auth/login能打到 auth 服务

七、经验总结

要点

说明

[0]vs[1] datasource是分水岭

[0]先修 Nacos;[1]再查 MyBatis 细项

Mapper 报错常是烟雾弹

selectConfigList not found多因mapper-locations未加载,不是接口/XML 写错

同一份 Nacos YAML 管多条线

数据源、MyBatis、路由一起失效或一起恢复

Windows 开发必盯编码

中文注释 + GBK 是若依微服务常见坑

一句话:先用dynamic-datasource loaded [0/1]判断 Nacos 是否生效;SysConfigMapper.selectConfigList等 MyBatis 报错往往是配置未加载的结果而非原因;根因是Nacos 配置因 UTF-8/GBK 不一致解析失败

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/10 18:11:07

告别尴尬!5分钟掌握Windows防休眠终极方案

告别尴尬&#xff01;5分钟掌握Windows防休眠终极方案 【免费下载链接】NoSleep Lightweight Windows utility to prevent screen locking 项目地址: https://gitcode.com/gh_mirrors/nos/NoSleep 还在为Windows自动锁屏而烦恼吗&#xff1f;演示到一半屏幕突然变黑&…

作者头像 李华
网站建设 2026/7/10 18:09:19

CI/CD 集成教程:如何在 GitHub Actions 中使用 @hapi/lab

CI/CD 集成教程&#xff1a;如何在 GitHub Actions 中使用 hapi/lab 【免费下载链接】lab Node test utility 项目地址: https://gitcode.com/gh_mirrors/lab2/lab GitHub 加速计划中的 lab2/lab 项目是一款强大的 Node.js 测试工具&#xff08;Node test utility&#…

作者头像 李华
网站建设 2026/7/10 18:07:23

如何使用SwiftTrace快速实现Swift与Objective-C方法调用追踪

如何使用SwiftTrace快速实现Swift与Objective-C方法调用追踪 【免费下载链接】SwiftTrace Trace Swift and Objective-C method invocations 项目地址: https://gitcode.com/gh_mirrors/sw/SwiftTrace SwiftTrace是一款强大的工具&#xff0c;能够帮助开发者轻松追踪Swi…

作者头像 李华
网站建设 2026/7/10 18:06:13

CharacterPickerView常见问题解决:10个开发者必须知道的Bug修复

CharacterPickerView常见问题解决&#xff1a;10个开发者必须知道的Bug修复 【免费下载链接】CharacterPickerView 项目地址: https://gitcode.com/gh_mirrors/ch/CharacterPickerView CharacterPickerView是一款强大的Android字符选择组件&#xff0c;广泛应用于表单输…

作者头像 李华