Компилятор Drools показывает ошибку, определенную правилом, начиная с 7.8.0. - PullRequest
0 голосов
/ 21 ноября 2018

Мы используем Drools более 10 лет, начиная с 3.0.6 и в настоящее время с 7.3.0. Финал.

У нас есть один модуль Maven с k-модулем, который содержит около 300 различных kieSessions в разных пакетах.

Вплоть до 7.7.0. Наконец, наш модуль правил скомпилируется нормально, т. Е. «Mvn clean package» создает Jrools-архив без каких-либо проблем.Однако когда я обновляю версию Drools в POM до 7.8.0. Наконец, я получаю много ошибок об уже определенных правилах.

У нас есть много файлов правил, содержащих одинаковые имена правил, но все они находятся в разныхпакеты и, следовательно, в разных kieSessions.И до 7.7.0. Наконец-то это работало нормально.

Я не смог найти ни одного намека в примечаниях к выпуску для 7.8.0.Финал, который описывает, почему компилятор не начинает жаловаться на дублирующиеся имена правил.

Кроме того, при использовании последней версии 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]

В этом сообщении об ошибке выглядит странно - defaultBieBase.

Определение kmoduleдля этого сеанса выглядит так:

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

1 Ответ

0 голосов
/ 21 ноября 2018

ОК, похоже, начиная с 7.8.0. Наконец, компилятор Drools учитывает имя пакета в файлах DRL, поэтому вам необходимо убедиться, что вы используете правильные имена пакетов.

...