Drools 集装箱可以装载多个包裹吗?还有什么';KiesContainer和KieBase之间的关系

Drools 集装箱可以装载多个包裹吗?还有什么';KiesContainer和KieBase之间的关系,drools,Drools,我不太会流口水。 该项目有几个KJAR,它们是从Kie workbench构建的。在我们的程序中,我们想把所有这些Kjar放在一个容器中。 但我可以从文档中看到,在创建容器时,它需要一个releaseId作为参数。参数是GroupId/ArtifactId/Kjar的版本,这意味着KieContainer只与1个Kjar相关 那么我怎样才能把这些罐子装到一个容器里呢?或者一个集装箱装几个Kjar是不可能的 另一个困惑是KieContainer和KieBase之间的确切关系是什么 非常感谢您提前回

我不太会流口水。 该项目有几个KJAR,它们是从Kie workbench构建的。在我们的程序中,我们想把所有这些Kjar放在一个容器中。 但我可以从文档中看到,在创建容器时,它需要一个releaseId作为参数。参数是GroupId/ArtifactId/Kjar的版本,这意味着KieContainer只与1个Kjar相关

那么我怎样才能把这些罐子装到一个容器里呢?或者一个集装箱装几个Kjar是不可能的

另一个困惑是KieContainer和KieBase之间的确切关系是什么


非常感谢您提前回答我的问题。

首先,我知道您只询问了KieContainer和KieBase,但我认为了解所有5个KieContainer概念对了解全貌很重要:

  • KieServices:允许您创建KieServices容器
  • KieContainer:具有对所有规则、函数等的引用。KieContainer可以加载KieContainer模块及其依赖项。一个容器可以有一个或多个碱基
  • KieModule:定义多个kiebase和kiesession。KIE模块可以包括其他KIE模块。这意味着您可以拥有一个顶级模块,其中包含来自不同域的资产。这里是指向的链接,显示了您可以拥有的所有选项
  • KieBase:表示一组资产的编译版本。例如,可以使用相同的规则创建无状态和有状态会话。另一种选择是一个KieBase用于一组包,另一个KieBase用于另一组包
  • KieSession:表示规则引擎的实例,其中包含基库中的规则。每个KieBase可以有一个或多个KieBase会话
  • 据我所知,不可能将几个不同的Kjar装入一个集装箱

    所以我的建议是

    A) 找到一种方法将所有内容合并到一个Kjar中,这样您就可以创建一个 把你所有的资产都放在容器里。这可能有助于您了解在给定用例的情况下,这是否是一个有效的选项

    B) 为创建一个新容器 您需要的每个版本的资产,并根据输入相应地进行路由。这会占用更大的内存,但如果您不能使用单个Kjar,这可能是最好的选择