【发布时间】:2015-04-10 09:38:54
【问题描述】:
使用 Drools 6.2.0.Final 我们有一个规则项目,在 kmodule.xml 中配置了 2 个单独的 kbase 和 ksession:
<kbase name="kbase1"
packages="foo.bar.package1">
<ksession name="ksession1" type="stateless" />
</kbase>
<kbase name="kbase2"
packages="foo.bar.package2">
<ksession name="ksession2" type="stateless" />
</kbase>
在每个这些包中,我们都有许多包含一些业务规则的 .drl 文件。 除了这些之外,每个包都包含一个 .drl,其中包含从业务规则文件调用的函数,例如package1-functions.drl 和 package2-functions.drl。 由于这两个函数文件的内容是相同的,我们正在考虑创建一个“通用”包,并且只有一个函数文件的副本。
但是,我们还没有设法让我们的规则与位于单独包中的函数一起使用。
这就是我们配置 kmodule.xml 的方式:
<kbase name="common"
packages="foo.bar.common"/>
<kbase name="kbase1" includes="common"
packages="foo.bar.package1">
<ksession name="ksession1" type="stateless" />
</kbase>
<kbase name="kbase2" includes="common"
packages="foo.bar.package2">
<ksession name="ksession2" type="stateless" />
</kbase>
我们尝试的另一种方法是不使用“通用”kbase,而是将通用包添加到 kbase1 和 kbase2 中的“packages”属性中。
是否可以在其他 2 个 kbase 中使用通用包?
【问题讨论】:
标签: drools