Drools编译器显示已定义的规则错误,从7.8.0.Final开始

Drools编译器显示已定义的规则错误,从7.8.0.Final开始,drools,Drools,从3.0.6版开始,到目前的7.3.0.4版,我们已经使用Drools超过10年了 我们有一个Maven模块,带有一个kmodule,在不同的包中包含大约300个不同的会话 在7.7.0.Final之前,我们的规则模块编译得很好,即“mvn clean package”生成Drools jar时没有任何问题。 然而,当我将POM中的Drools版本升级到7.8.0.Final时,我收到了许多关于已经定义的规则的错误 我们确实有许多包含相同规则名称的规则文件,但它们都在不同的包中,因此在不同的会话

从3.0.6版开始,到目前的7.3.0.4版,我们已经使用Drools超过10年了

我们有一个Maven模块,带有一个kmodule,在不同的包中包含大约300个不同的会话

在7.7.0.Final之前,我们的规则模块编译得很好,即“mvn clean package”生成Drools jar时没有任何问题。 然而,当我将POM中的Drools版本升级到7.8.0.Final时,我收到了许多关于已经定义的规则的错误

我们确实有许多包含相同规则名称的规则文件,但它们都在不同的包中,因此在不同的会话中。在7.7.0决赛之前,这一切都很顺利

我在7.8.0.Final的发行说明中找不到任何提示来说明为什么编译器开始抱怨重复的规则名称

此外,使用最新版本7.14.0.Final也会显示相同的错误:

[ERROR] Failed to execute goal org.kie:kie-maven-plugin:7.8.0.Final:build (default-build) on project myproject: Execution default-build of goal org.kie:kie-maven-plugin:7.8.0.Final:build failed: Unable to get KieModule, Errors Existed: Error Messages:
[ERROR] Message [id=1, kieBase=defaultKieBase, level=ERROR, path=mypath/my-rules-file.drl, line=23, column=0
[ERROR]    text=Duplicate rule name: MyRuleName]
此错误消息中奇怪的是defaultKieBase

此会话的kmodule定义如下所示:

<kbase name="my-rules-base"
           packages="my.package">
    <ksession name="my-rules-session" type="stateless"/>
</kbase>


<代码> > P> > OK,似乎从7.8.最终开始,DROLS编译器确实考虑了DRL文件中的包名,所以您需要确保使用正确的包名。

似乎从DROLLS版本7.7.0.0开始。DRL文件内的包名变得相关。在7.8.0.Final之前,尽管文件位于不同的目录和会话中,但是否有包名或是否有重复的包名并不重要。