有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Drools访问生成的java文件

我正在通过Mockito测试执行Drools规则。该规则在运行时报告错误时失败,因为java文件的行号具有一些长的任意名称。Drools似乎可以动态生成java文件并注入JVM。但当我在光盘上搜索这些文件时,我没有找到任何文件。有没有办法将它们存储在光盘上


共 (1) 个答案

  1. # 1 楼答案

    找到了解决方案:

    可以通过两种方式转储Drools生成的java文件

    1)通过命令行:

    -Ddrools.dump.dir="target/dumpDir"
    

    例如,我使用maven命令来执行规则,以便

    mvn -Ddrools.dump.dir="target/dumpDir" -Dtest=DroolsRuleTest test
    

    2)通过API

    public class FileKnowledgeBaseFactory implements KnowledgeBaseFactory {
        private Log log = LogFactory.getLog(FileKnowledgeBaseFactory.class);
    
        public KnowledgeBase load(String drlFullFilename) {
            KnowledgeBuilderConfiguration config = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration();
            config.setOption(DumpDirOption.get(new File("target/dumpDir")));
    
            KnowledgeBuilder knowledgeBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(config);
    
            ....
            ....
        }
    }