首页 > 解决方案 > Drools 将另一个项目的规则添加到 kmodule 中?

问题描述

因此,文档声明您可以通过编程方式加载 kie 模块

KieServices ks = KieServices.Factory.get();

KieContainer kieContainer = newKieContainer(ks.newReleaseId("my.org","my.artifact.id","version"));
KieSession kieSession = kieContainer.newKieSession("ktest");

有没有办法通过maven和做到这一点kmodule.xml?我的用例是使用我在这个项目中编写的规则,在另一个项目中添加它们。也许我在 7.7 文档中错过了它,如果是这样,请链接,我会与我的眼科医生预约。

附录:我想kmodule.xml看起来类似于这样:

<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
<configuration>
</configuration>
<!-- Shared Knowledgebase -->
<kbase name="am" packages="my.package.name, rules">  
    <ksession name="default" type="stateful" default="true"/>
</kbase>

但是,这似乎没有看到包

谢谢

标签: javadrools

解决方案


所以我确实想通了。我认为这packagekmodule.xml. 但实际上它只是简单地添加了incluldes = "package.name"它,它自己解决了所有问题。

但是,我也推荐@Prog_G 答案,虽然这不是我想要的,但我相信它会帮助其他人解决同样的问题。

最后结果:

<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
<configuration>
</configuration>
<kbase name="am" packages="rules" includes = "my.package.name">  
    <ksession name="default" type="stateful" default="true"/>
</kbase>

推荐阅读