gpt4 book ai didi

maven - 流口水 6.4 KieScanner : How create and add Jar with rules in Maven?

转载 作者:行者123 更新时间:2023-12-04 03:20:50 25 4
gpt4 key购买 nike

我是 Drools 和 Maven 的初学者,我在使用 KieScanner 加载规则时遇到问题。

该项目的目的是能够在永久 KieSession 中动态加载规则。我想知道是否可以使用 KieFileSystem 管理规则(不确定是否可以不处理 session 并启动另一个导致缺少先前插入的事实的 session ),但最好的方法是使用 KieScanner。

似乎这需要创建一个包含规则并具有 Maven ID (ReleaseId) 的 Jar,但我找不到有关创建这些 Jar 文件的详细文档。

哪些文件应包含在这样的 Jar 中? DRL 文件,Pom.xml 和 manifest.mf ?

这个 Jar 文件可以添加到哪里?根据文档,当需要检测该文件的新问题时,不应将其添加到类路径中:“一旦模块位于类路径上,就不能动态加载其他版本”。

是否需要 Maven 命令?

有人可以给我关于这些点的信息或给我一个链接,其中描述了这种 Jar 的创建和部署及其在 KieScanner 中的管理?非常感谢。

最佳答案

这是一个无状态的示例 kiesession使用 kjar 来自一个 maven 存储库(代码在 scala 中,但我相信你会明白你主要用 Java 编程)

private val services = KieServices.Factory.get
private val releaseId = services.newReleaseId("com.piedpiper", "demo", "[1.0,2)")
private val kieContainer = services.newKieContainer(releaseId)

val kScanner = services.newKieScanner(kieContainer)
kScanner.start(2000L)

val kieSession = kieContainer.newStatelessKieSession("SimpleSession")

@tailrec
def check() {
val (aName, aAge) = scala.io.StdIn.readf2("{0} {1,number}")
val applicant = Applicant(name = aName.asInstanceOf[String], age = aAge.asInstanceOf[Long].toInt, pass = false)
kieSession.execute(applicant)
println(s"valid is ${applicant.pass}")
check()
}

check()

这使用带有 gav com.piedpiper:demo:[1.0,2) 的 maven 查找 kjar (iow 任何从 1.02 的版本(不包括在内)。它每两秒检查一次该范围内的新版本是否可用。

kjar 包含知识资源, kmodule.xml等(使用 kie-maven-plugin plugin-extension 编译规则的适当 kjar)。在这种情况下,它还包含事实模型(我通常会在不同的 Maven 人工制品中将其分开。)

上面示例中使用的规则是
rule "Is of valid age"
when
$a : Applicant( age > 13, pass==false )
then
modify($a){
pass = true
}
end

例如,将规则更改为 > 15 时,需要 2 秒才能开始运行。

关于maven - 流口水 6.4 KieScanner : How create and add Jar with rules in Maven?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38458460/

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