我们正在使用 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/