drools - 我们如何在 JBoss 规则中的 .drl 文件之间共享单独的规则?

标签 drools modularization jboss-rules

我们正在使用 JBoss Rules (又名 Drools)并有多个 .drl 文件,每个文件包含多个规则。有没有一种方法可以避免文件之间的重复,以便我们可以定义可用于多个 .drl 文件的通用规则?

不幸的是,似乎没有任何类型的include 或模块工具。

最佳答案

无法将来自另一个 .drl 文件的规则包含在一个 .drl 文件中。

但是,您可以将两个 .drl 文件添加到同一个 ruleBase,它们将像在同一个文件中一样工作。

PackageBuilder builder = new PackageBuilder();
builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "common.drl" ) ) );
builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "rules1.drl" ) ) );
RuleBase ruleBase  = RuleBaseFactory.newRuleBase();
ruleBase.addPackage( builder.getPackage()  );

关于drools - 我们如何在 JBoss 规则中的 .drl 文件之间共享单独的规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/91917/

相关文章:

java - OSGi 可以轻松地用于管理包依赖关系吗?

java - 如何在不调用规则的情况下测试 drool 文件中存在的函数?

junit - 使用junit进行Drools测试

java - Drools 适用于我的场景吗?如果不是还有什么?

eclipse - 无法打开 drl 文件,因为它不存在

c - 错误: misuse of undefined type 'struct IntArray'

unit-testing - 你如何对 Jboss Rules (Drools) 规则进行单元测试?

java - 方言错误消息流口水

Drools 创建规则(DRL)以编程方式在 drools-distribution-6.5.0.Final 中不起作用

c++ - C++ 模块化编程中的可检索日志记录