java - 升级到 Java 7 时出现 Drools 规则编译错误

标签 java maven drools

我在我的 Java 项目中使用 Drools (5.5.0) 规则(使用 maven 2.2.1 管理)。它在 Java 6 (1.6.0_45) 中工作正常,但是当我迁移到 Java 7 (1.7.0_51) 并构建时,某些规则会出现如下规则编译错误:

Rule Compilation error : [Rule name='SampleRuleName']
    com/sample/event/rules/simple/Rule_SampleRuleName46467274.java (2:486) : Syntax error, static imports are only available if source level is 5.0
    com/sample/event/rules/simple/Rule_SampleRuleName46467274.java (2:500) : The import com.sample.event.rules.simple.TransformEvent.transformEvent cannot be resolved
    com/sample/event/rules/simple/Rule_SampleRuleName46467274.java (7:1082) : The method transformEvent(TransformedEventCallBackHandler, EventTemplate, FirmwareEvent) is undefined for the type Rule_SampleRuleName46467274

“静态导入仅在源级别为 5.0 时可用”错误表明 drools 编译器将源级别设置为小于 5,但为什么要这样做呢?我已经更新了 JAVA_HOME 和 pom.xml。它应该从那里获取 Java 源代码级别,对吗?

最佳答案

升级到 Drools 6,此问题已修复。最近,我们在 Drools 6.0 中遇到了 Java 8 的类似问题,该问题已在 6.1 中修复(以及最新版本的 6.0)。

java 8 的原因是 drools 识别 java 版本 1.6、1.7,但不识别 1.8,此时它默认为 1.6。我怀疑 drools 5.5(旧的)对于 java 7 也有同样的问题。

关于java - 升级到 Java 7 时出现 Drools 规则编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23826895/

相关文章:

java - Apache Felix + Java EE + OSGi Web 应用程序

java - 通过 Maven 部署 Solr 到 Tomcat

java - 无法在 Eclipse 中创建 .dslr

java - 泛型类型到静态方法

java - 配置 AsciiDoctor Maven 插件以生成单个 PDF 文件

java - 设置按钮事件后可聚焦

java - JBoss Drools 检查一次条件

java - 检查对象是否在列表中的规则

api - 为什么 Files.exists(…) 和 Files.notExists(…)?

java - JPQL——空值到 boolean 值?