OptaPlanner集成问题:Drools包编译异常
OptaPlanner集成问题:Drools包编译异常
嘿,看起来你在Spring项目里用OptaPlanner 9.44.0.Final时碰到了Drools相关的编译异常,这类问题大多和依赖配置脱不了干系,我给你几个实用的排查方向:
先检查依赖有没有配全:OptaPlanner 9.x版本依赖特定版本的Drools组件,你得确保项目里已经引入了
drools-compiler、drools-modelcompiler和drools-core这些核心依赖,而且版本必须和OptaPlanner保持一致(也就是9.44.0.Final)。如果是Maven项目,直接去pom.xml里核对一下就行。排查依赖冲突:有时候项目里其他依赖可能偷偷引入了不同版本的Drools,导致版本冲突。你可以用Maven的
mvn dependency:tree命令(Gradle的话用./gradlew dependencies)生成依赖树,找出那些版本不匹配的Drools组件,然后通过<exclusions>标签把冲突的版本排除掉。优先用官方的Starter依赖:如果是Spring Boot项目,强烈建议直接引入
optaplanner-spring-boot-starter,它会自动帮你管理所有相关的Drools依赖,避免手动引入时容易犯的版本不匹配错误。
你遇到的具体异常日志如下:
19:19:21,913 ERROR [stderr] (default task-1) org.kie.memorycompiler.KieMemoryCompilerException: [org/drools/ancompiler/Compiledcom_vision360_business_shift_entity_ShiftOccurrenceNetwork31024483268.java (2:121) : cannot find symbol 19:19:21,913 ERROR [stderr] (default task-1) symbol: class CompiledNetwork 19:19:21,913 ERROR [stderr] (default task-1) location: package org.drools.ancompiler, org/drools/ancompiler/Compiledcom_vision360_business_shift_entity_ShiftOccurrenceNetwork31024483268.java (4:30) : package org.drools.base.rule.accessor does not exist, org/drools/ancompiler/Compiledcom_vision360_business_shift_entity_ShiftOccurrenceNetwork31024483268.java (6:46) : package org.drools.modelcompiler.constraints does not exist, org/drools/ancompiler/Compiledcom_vision360_business_shift_entity_ShiftOccurrenceNetwork31024483268.java (7:29) : package org.drools.base.ru...
举个例子,Maven里正确的Starter依赖配置应该是这样的:
<dependency> <groupId>org.optaplanner</groupId> <artifactId>optaplanner-spring-boot-starter</artifactId> <version>9.44.0.Final</version> </dependency>
如果一定要手动引入Drools组件,记得保持版本一致:
<dependency> <groupId>org.drools</groupId> <artifactId>drools-compiler</artifactId> <version>9.44.0.Final</version> </dependency> <dependency> <groupId>org.drools</groupId> <artifactId>drools-modelcompiler</artifactId> <version>9.44.0.Final</version> </dependency>
备注:内容来源于stack exchange,提问作者Pramod CA
相关产品推荐
相关产品推荐

