Java Drools是否将另一个项目的规则添加到kmodule中?
因此,文档声明您可以通过编程方式加载kie模块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
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项目。请按照以下步骤操作:
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项目。请按照以下步骤操作:
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的东西能够使用规则。我想我找到了它的文档,我会尝试一下,然后作为答案返回