我们正在使用JBoss Rules(a.k.a. Drools)并拥有多个 .drl 文件,每个文件都包含多个规则。有没有办法避免文件之间的重复,以便我们可以定义可用于多个 .drl 文件的通用规则?
不幸的是,似乎没有任何 include 或模块工具。
答案 0 :(得分:2)
无法在.drl文件中包含来自另一个.drl文件的规则。
但是,您可以将两个.drl文件添加到同一个规则库中,它们就像它们位于同一个文件中一样。
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() );