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

含日文DRL文件的Maven项目执行mvn deploy失败但Plexus启动正常,原因是什么?

问题根因

  1. Maven启动脚本参数传递逻辑差异:你直接在mvn命令后附加的-Dfile.encoding=UTF-8参数,会被Windows环境下的Maven批处理启动脚本识别为Maven应用参数,而非JVM启动系统属性,最终JVM进程实际启动时并未加载该编码配置,仍然使用操作系统默认编码(日文Windows环境默认多为Shift_JIS)。org.kie插件读取包含日文字符的DRL文件内容、文件名时,使用默认编码解析出现乱码,最终触发解析失败报错。
  2. 你通过java命令直接启动Plexus Classworlds时,-Dfile.encoding=UTF-8是直接作为JVM启动参数传入,编码配置生效,因此不会出现乱码问题。

适配方案

你可以通过以下任意一种方式将JVM参数适配到标准mvn命令中:

单次执行生效

Windows CMD环境执行命令前先配置临时环境变量:

set MAVEN_OPTS=-Dfile.encoding=UTF-8
mvn deploy -P deployToDistribution

Windows PowerShell环境执行:

$env:MAVEN_OPTS="-Dfile.encoding=UTF-8"
mvn deploy -P deployToDistribution

Linux/macOS环境执行:

export MAVEN_OPTS="-Dfile.encoding=UTF-8"
mvn deploy -P deployToDistribution

项目级永久生效

在项目根目录创建.mvn/jvm.config文件,写入以下内容:

-Dfile.encoding=UTF-8

后续在该项目下执行任意mvn命令都会自动加载该JVM参数,无需手动配置。

全局永久生效

在系统环境变量中新增MAVEN_OPTS变量,值为-Dfile.encoding=UTF-8,配置完成后所有mvn命令执行都会生效。

你已配置的<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>配置无需调整,配合上述JVM参数即可解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 07:57:04