Drools 目标组织的执行默认generateModel.kie:kie maven插件:7.44.0.Final-redhat-00003:generateModel失败

Drools 目标组织的执行默认generateModel.kie:kie maven插件:7.44.0.Final-redhat-00003:generateModel失败,drools,Drools,在迁移到7.44.0.Final-redhat-00003版本并依赖于可执行规则模型之后,我正在尝试从现有drools项目构建一个kjar。 在不依赖可执行规则模型的情况下(或者在设置-DgenerateModel=NO时),它可以很好地编译和工作。 现在,我得到了这个错误: Failed to execute goal org.kie:kie-maven-plugin:7.44.0.Final-redhat-00003:generateModel (default-generateModel)

在迁移到7.44.0.Final-redhat-00003版本并依赖于可执行规则模型之后,我正在尝试从现有drools项目构建一个kjar。 在不依赖可执行规则模型的情况下(或者在设置-DgenerateModel=NO时),它可以很好地编译和工作。 现在,我得到了这个错误:

Failed to execute goal org.kie:kie-maven-plugin:7.44.0.Final-redhat-00003:generateModel (default-generateModel) on project controlesnonbloquants-kjar: Execution default-generateModel of goal org.kie:kie-maven-plugin:7.44.0.Final-redhat-00003:generateModel failed.: CannotConvertException -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.kie:kie-maven-plugin:7.44.0.Final-redhat-00003:generateModel (default-generateModel) on project controlesnonbloquants-kjar: Execution default-generateModel of goal org.kie:kie-maven-plugin:7.44.0.Final-redhat-00003:generateModel failed.
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-generateModel of goal org.kie:kie-maven-plugin:7.44.0.Final-redhat-00003:generateModel failed.
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:148)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.drools.modelcompiler.builder.generator.ToMethodCall$CannotConvertException
    at org.drools.modelcompiler.builder.generator.ToMethodCall.convertNameToMethod (ToMethodCall.java:142)
    at org.drools.modelcompiler.builder.generator.ToMethodCall.toMethodCallWithClassCheck (ToMethodCall.java:73)
    at org.drools.modelcompiler.builder.generator.drlxparse.ConstraintParser.parseFieldAccessExpr (ConstraintParser.java:263)
    at org.drools.modelcompiler.builder.generator.drlxparse.ConstraintParser.getDrlxParseResult (ConstraintParser.java:154)
    at org.drools.modelcompiler.builder.generator.drlxparse.ConstraintParser.parseBinaryExpr (ConstraintParser.java:331)
    at org.drools.modelcompiler.builder.generator.drlxparse.ConstraintParser.getDrlxParseResult (ConstraintParser.java:134)
    at org.drools.modelcompiler.builder.generator.drlxparse.ConstraintParser.drlxParse (ConstraintParser.java:102)
    at org.drools.modelcompiler.builder.generator.visitor.pattern.PatternDSL.findAllConstraint (PatternDSL.java:136)
    at org.drools.modelcompiler.builder.generator.visitor.pattern.PatternDSL.buildPattern (PatternDSL.java:235)
    at org.drools.modelcompiler.builder.generator.visitor.ModelGeneratorVisitor.visit (ModelGeneratorVisitor.java:145)
    at org.drools.compiler.lang.descr.PatternDescr.accept (PatternDescr.java:288)
    at org.drools.modelcompiler.builder.generator.visitor.AndVisitor.visit (AndVisitor.java:50)
    at org.drools.modelcompiler.builder.generator.visitor.ModelGeneratorVisitor.visit (ModelGeneratorVisitor.java:86)
    at org.drools.modelcompiler.builder.generator.ModelGenerator.processRule (ModelGenerator.java:186)
    at org.drools.modelcompiler.builder.generator.ModelGenerator.generateModel (ModelGenerator.java:159)
    at org.drools.modelcompiler.builder.ModelBuilderImpl.compileKnowledgePackages (ModelBuilderImpl.java:281)
    at org.drools.modelcompiler.builder.ModelBuilderImpl.buildRules (ModelBuilderImpl.java:209)
    at org.drools.modelcompiler.builder.ModelBuilderImpl.postBuild (ModelBuilderImpl.java:129)
    at org.drools.compiler.builder.impl.CompositeKnowledgeBuilderImpl.build (CompositeKnowledgeBuilderImpl.java:111)
    at org.drools.compiler.builder.impl.CompositeKnowledgeBuilderImpl.build (CompositeKnowledgeBuilderImpl.java:97)
    at org.drools.compiler.kie.builder.impl.AbstractKieProject.buildKnowledgePackages (AbstractKieProject.java:268)
    at org.drools.compiler.kie.builder.impl.AbstractKieProject.buildKnowledgePackages (AbstractKieProject.java:216)
    at org.drools.compiler.kie.builder.impl.AbstractKieProject.verify (AbstractKieProject.java:80)
    at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildKieProject (KieBuilderImpl.java:279)
    at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildAll (KieBuilderImpl.java:247)
    at org.kie.maven.plugin.GenerateModelMojo.generateModel (GenerateModelMojo.java:146)
    at org.kie.maven.plugin.GenerateModelMojo.execute (GenerateModelMojo.java:106)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
但我不知道错误在哪里

为Maven添加调试模式,我只在以前的调试日志中看到:

Typed expression Input: drlxExpr = this instanceof XxxxYyyyyy , patternType = class x.y.z.Aaaaaa,declarations = []
Typed expression Output:...
有没有发现问题的办法

我想在这里展示导致问题的规则,但我不知道是哪一条,我有数百条规则。 最终我可能已经找到了问题的根源。以下是该规则的简单版本:

rule "CSE1.001_CCR-00141"
when
    $elementA : PeriodX(
    )

    $elementB : PeriodX(
            this != $elementA,
            toCheck || $elementA.toCheck
    )
then
    insert (HelperAction.buildError("CSE1_001_CCR_00141", $elementA, $elementB));           
end
似乎$elementA.toCheck是问题的根源。如果toCheck是一个布尔字段,如果我添加“$elementA.toCheck==true”,它就会编译


谢谢你免责声明:我是Drools开发者之一

新的Drools评估引擎的编译有问题,它是7.39以来的默认值。请提供失败的规则,以便我们可以修复它

编辑:

这是为追踪它而创建的JIRA


谢谢你帮助我们改善口水

免责声明:我是Drools开发者之一

新的Drools评估引擎的编译有问题,它是7.39以来的默认值。请提供失败的规则,以便我们可以修复它

编辑:

这是为追踪它而创建的JIRA


谢谢你帮助我们改善口水

如果不共享规则和/或完整的mvn日志,则无法调试。@AntonGiertli我刚刚添加了完整的maven日志。如果我对导致问题的规则有所了解,我可以添加失败的规则……如果您不共享规则和/或完整的mvn日志,这是不可能调试的。@AntonGiertli我刚刚添加了完整的maven日志。我可以添加失败的规则,如果我有一个导致问题的线索…我刚刚添加了完整的maven日志。我很想提供失败的规则,但因为没有关于错误的日志。我怎样才能找到规则?@BenjaminC这项任务解决后,你能将答案标记为已接受吗?非常感谢。我刚刚添加了完整的maven日志。我很想提供失败的规则,但因为没有关于错误的日志。我怎样才能找到规则?@BenjaminC这项任务解决后,你能将答案标记为已接受吗?非常感谢。