gpt4 book ai didi

java - Drools 将另一个项目的规则添加到 kmodule 中?

转载 作者:行者123 更新时间:2023-12-02 11:07:36 25 4
gpt4 key购买 nike

因此文档指出您可以使用

以编程方式加载 kie 模块
KieServices ks = KieServices.Factory.get();

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

有没有办法通过mavenkmodule.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>

不过好像没有看到包

谢谢

最佳答案

是的,您可以在另一个项目中使用不同的 Drools 项目。请按照以下步骤操作:

  1. 构建您想要在其他 Drool 项目中使用的 Drool 项目。在正确构建之前,请检查 kmodule.xml 文件。
  2. 构建项目后,使用mvn file upload命令将jar上传到本地maven存储库,即.m2存储库。示例 - mvn install:install-file -Dfile="pathToJAr"-DgroupId="groupId"-DartifactId="artifactId"-Dversion="version"-Dpackaging="jar"。您可以使用自定义的 groupId、artifactId 和版本。
  3. 然后将上述自定义的 groupId、artifactId 和 version 添加到 pom.xml 中作为依赖项。
  4. 然后创建kieConatiner和kieSession,如下所示:

    KieServices.Factory.get();
    ReleaseId rs= ks.newReleaseId("artifactId","groupId","version");
    KieContainer kieContainer = ks.newKieContainer(rs);
    KieScanner kieScanner = ks.newKieScanner(kieContainer);
    kieScanner.start(10000);

KieScanner 用于动态更新KieContainer。这里kieScanner将每10秒扫描一次本地maven仓库。

关于java - Drools 将另一个项目的规则添加到 kmodule 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50843133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com