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

Drools 我们如何在JBoss规则中的.drl文件之间共享单个规则?,drools,modularization,jboss-rules,Drools,Modularization,Jboss Rules,我们正在使用(又称Drools),并且有几个.drl文件,每个文件都包含几个规则。是否有办法避免文件之间的重复,以便我们可以定义可用于多个.drl文件的通用规则 不幸的是,似乎没有任何类型的包含或模块功能。无法从.drl文件中包含另一个.drl文件中的规则 但是,您可以将两个.drl文件添加到同一规则库中,它们将像在同一文件中一样工作 PackageBuilder builder = new PackageBuilder(); builder.addPackageFromDrl( new Inp

我们正在使用(又称Drools),并且有几个.drl文件,每个文件都包含几个规则。是否有办法避免文件之间的重复,以便我们可以定义可用于多个.drl文件的通用规则


不幸的是,似乎没有任何类型的包含或模块功能。

无法从.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()  );

这个答案在编写时是正确的,但PackageBuilder已从Drools 6.1中删除。见相关问题: