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

添加kie-server-client依赖后JBPM项目构建长时间无法完成问题咨询

解决方案

根因分析

  • 你添加kie-server-client依赖时的排除规则存在语法错误,groupId中的-是拼写错误,应该为.,导致原本要排除的规则/PMML相关依赖没有被成功过滤
  • 残留的PMML传递依赖会让Kie构建器默认尝试初始化多个PMML专用KieBase,扫描不到对应规则文件时会陷入长时间的重试/编译等待,是构建卡死的核心原因
  • 手动终止构建后出现的Maven注入、Weld上下文错误都是构建被强制中断后的衍生问题,不是根因

修复步骤

步骤1:修正依赖排除规则,新增PMML相关依赖排除

修正后的依赖配置如下,重点修正groupId的拼写错误,新增PMML相关依赖的通配符排除:

<dependency>
  <groupId>org.kie.server</groupId>
  <artifactId>kie-server-client</artifactId>
  <exclusions>
    <!-- 修正原groupId的拼写错误:把横杠替换为点 -->
    <exclusion>
        <groupId>org.kie</groupId>
        <artifactId>kie-dmn-api</artifactId>
    </exclusion>
    <exclusion>
        <groupId>org.optaplanner</groupId>
        <artifactId>optaplanner-core</artifactId>
    </exclusion>
    <exclusion>
        <groupId>org.drools</groupId>
        <artifactId>drools-core</artifactId>
    </exclusion>
    <!-- 新增所有PMML相关依赖排除,避免触发PMML KieBase自动扫描 -->
    <exclusion>
        <groupId>org.kie</groupId>
        <artifactId>kie-pmml*</artifactId>
    </exclusion>
    <exclusion>
        <groupId>org.drools</groupId>
        <artifactId>drools-pmml*</artifactId>
    </exclusion>
  </exclusions>
  <!-- 建议显式指定和你当前JBPM版本匹配的版本号,避免版本不兼容问题 -->
  <version>${version.org.kie}</version>
</dependency>

注意:如果你的项目中实际用到了Drools规则能力,不要排除drools-core,仅保留PMML相关的排除规则即可

步骤2:显式配置kmodule.xml禁用不需要的KieBase

在项目src/main/resources/META-INF/kmodule.xml中添加配置,明确指定你实际需要用到的KieBase,关闭PMML相关自动扫描:

<kmodule xmlns="http://www.drools.org/xsd/kmodule">
    <!-- 仅配置你实际用到的KieBase,不需要规则的话可以只保留默认空配置,packages指定为你实际的业务包路径 -->
    <kbase name="defaultKieBase" packages="com.your.business.package">
        <ksession name="defaultKieSession"/>
    </kbase>
    <!-- 显式声明日志中出现的所有PMML相关KieBase,设置packages为none、default为false,避免自动加载 -->
    <kbase name="KiePMML-Cluster-Rules" packages="none" default="false"/>
    <kbase name="KiePMML-Tree-Rules" packages="none" default="false"/>
    <kbase name="KiePMML-Bayes-Rules" packages="none" default="false"/>
    <kbase name="KiePMML-Neural-Rules" packages="none" default="false"/>
    <kbase name="KiePMML-Regression-Rules" packages="none" default="false"/>
    <kbase name="KiePMML-SVM-Rules" packages="none" default="false"/>
    <kbase name="KiePMML-Scorecard-Rules" packages="none" default="false"/>
</kmodule>

步骤3:清理缓存后重试构建

  • 清空Business Central的项目构建缓存,删除本地Maven仓库中org/kie、org/drools相关的缓存目录
  • 重启Business Central服务后重新执行构建

可选优化

如果你的WorkItemHandler仅需要调用Kie Server的REST接口,不需要内置规则、流程解析能力,可以直接使用更轻量的kie-server-rest-client替代完整的kie-server-client,大幅减少不必要的传递依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 22:45:03