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

Quarkus 1.13.7搭配OptaPlanner 8.7.0报错:quarkus-core-deployment-1.13.7.Final.jar中存在非法字符

OptaPlanner 8.7.0 + Quarkus 1.13.7 Windows路径错误排查与解决

你在升级OptaPlanner后遇到的这个路径错误,本质是旧版本Quarkus与OptaPlanner 8.7.0的文件路径处理逻辑不兼容导致的,下面给你几个具体的排查和解决思路:

1. 核心原因:Quarkus版本兼容性不匹配

OptaPlanner 8.7.0发布时,Quarkus 1.13.x已经停止维护,OptaPlanner 8.x系列更适配Quarkus 2.x版本。你的项目同时引入了Quarkus 1.13.7的BOM和OptaPlanner 8.7.0的BOM,两者在文件路径处理相关组件上存在逻辑冲突,这是触发错误的主要原因。

2. 优先解决方案:升级Quarkus版本

这是最彻底的解决方式,步骤如下:

  • 修改pom.xml中的Quarkus版本为与OptaPlanner 8.7.0兼容的2.x版本,比如2.3.0.Final(该版本经验证与OptaPlanner 8.7.0适配良好):
    <properties>
        <!-- 其他属性保持不变 -->
        <version.io.quarkus>2.3.0.Final</version.io.quarkus>
    </properties>
    
  • 执行清理和重新构建命令,确保依赖完全更新:
    mvn clean install -U
    
  • 启动项目验证问题是否解决。

3. 临时妥协方案(不升级Quarkus)

如果暂时无法升级Quarkus,可以尝试以下调整:

  • 检查Solver配置加载逻辑,避免使用file://格式的URL,改用classpath路径或者本地Windows原生路径(比如C:\Users\lolo\...)。例如在application.properties中指定Solver配置文件的classpath路径:
    quarkus.optaplanner.solver-config-location=classpath:/solver/my-solver-config.xml
    
  • 排查项目中自定义的资源加载代码,确保没有将Windows路径转换为file://格式后直接交给Java的Paths.get()方法处理(老版本Quarkus的依赖库对这种格式的解析存在bug)。

4. 额外检查:依赖冲突验证

执行以下命令查看项目依赖树,确认是否存在quarkus-core相关组件的版本冲突:

mvn dependency:tree | findstr "quarkus-core"

如果发现不同版本的quarkus-core组件被引入,可以在dependencyManagement中明确指定版本为1.13.7.Final,不过这只是临时措施,还是建议优先升级Quarkus版本。


内容的提问来源于stack exchange,提问作者Loïc

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 20:12:27