Java Drools是否将另一个项目的规则添加到kmodule中?

Java Drools是否将另一个项目的规则添加到kmodule中?,java,drools,Java,Drools,因此,文档声明您可以通过编程方式加载kie模块 KieServices ks = KieServices.Factory.get(); KieContainer kieContainer = newKieContainer(ks.newReleaseId("my.org","my.artifact.id","version")); KieSession kieSession = kieContainer.newKieSession("ktest"); 有没有办法通过maven和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>

然而,这似乎没有看到包装


谢谢

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

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

    KieServices.Factory.get();
    ReleaseId rs=ks.newReleaseId(“artifactId”、“groupId”、“version”);
    KieContainer KieContainer=ks.newKieContainer(rs);
    KieScanner KieScanner=ks.newKieScanner(kieContainer);
    启动(10000)


  • KieScanner用于动态更新
    KieContainer
    。这里,
    kieScanner
    将每10秒扫描一次本地maven回购。

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

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

    KieServices.Factory.get();
    ReleaseId rs=ks.newReleaseId(“artifactId”、“groupId”、“version”);
    KieContainer KieContainer=ks.newKieContainer(rs);
    KieScanner KieScanner=ks.newKieScanner(kieContainer);
    启动(10000)


  • KieScanner用于动态更新
    KieContainer
    。这里,
    kieScanner
    将每10秒扫描一次本地maven回购。

    所以我确实找到了答案。我认为它与
    kmodule.xml
    中的
    package
    有关。但实际上,它只是简单地添加了
    incluldes=“package.name”
    ,然后就自己解决了

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

    最终结果:

    <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>
    

    所以我确实找到了答案。我认为它与
    kmodule.xml
    中的
    package
    有关。但实际上,它只是简单地添加了
    incluldes=“package.name”
    ,然后就自己解决了

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

    最终结果:

    <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>
    
    
    
    有点像。我希望使用kmodule指向另一个项目的kbase的东西能够使用规则。我想我找到了它的文档,我会尝试一下,然后作为一种回答回来。我希望使用kmodule指向另一个项目的kbase的东西能够使用规则。我想我找到了它的文档,我会尝试一下,然后作为答案返回