Drools Eclipse 插件忽略源级别
Drools Eclipse Plugin ignores source level
我已经将 Drools Eclipse 插件 org.drools.eclipse
7.36.0.Final 安装到我的 Eclipse 2020_03 运行 Oracle JDK 1.8.0_92.我已经下载并解压缩 drools-distribution-7.36.0.Final
并在 Eclipse 首选项中将 binaries/
目录添加为 Drools > Installed Drools Runtimes
。
只要我使用任何 Java 1.5+ 功能(泛型、foreach 循环、闭包...),我就会在规则编辑器中收到错误标记,指出存在语法错误并且这些功能需要源代码1.5 级(1.8 关闭)。
我的 .drl 文件和项目本身似乎没问题,因为我可以通过 maven 编译和 运行 而不会出错。所以这不是一个阻塞问题,但令人恼火的是,我似乎无法在我的 IDE.
中对 .drl 文件进行语法检查。
我已经在互联网上搜索并尝试了各种方法:
- 我已将项目和工作区中的 JDT 源级别设置为 1.8
- 我已经在属性中检查了已安装的 JRE,但只列出了一个 JDK 1.8.0_92
- 我在
/src/main/resources/META-INF/
中创建了一个包含此内容的 kmodule.xml
文件
<?xml version="1.0" encoding="UTF-8"?>
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
<configuration>
<property key="drools.dialect.java.compiler.lnglevel" value="1.8" />
<property key="drools.dialect.java.compiler" value="ECLIPSE" />
<property key="drools.compiler.lnglevel" value="1.8" />
</configuration>
<kbase name="rules">
<ksession name="codegen-rules"/>
</kbase>
</kmodule>
- 我在
/src/main/resources/META-INF/
中创建了一个 kie.properties.conf
文件,内容如下:
drools.dialect.java.compiler.lnglevel=1.8
drools.dialect.java.compiler=ECLIPSE
drools.compiler.lnglevel=1.8
- 我已经在我的
eclipse.ini
文件的 VM args 部分添加了属性:
-Ddrools.dialect.java.compiler.lnglevel=1.8
-Ddrools.dialect.java.compiler=ECLIPSE
-Ddrools.compiler.lnglevel=1.8
但是所有这些似乎都没有任何效果,它一直给我同样的错误标记。
在语法检查我的 .drl
文件时,如何告诉 规则编辑器 我想启用 Java 1.8 源级别?
我 运行 使用最新的 eclipse 版本和最新的 drools 版本来解决这个问题。
使用 Eclipse 2019-03
和 Jboss Tools Integration Stack
here 确实有效。因此,要么在后来的 eclipse 版本中出现问题,要么在后来的 drools 版本中出现问题。集成堆栈使用 7.21.0.Final
我还没有深入研究到底是什么坏了,但即使我知道了,我也不知道我会向谁报告:(
我已经将 Drools Eclipse 插件 org.drools.eclipse
7.36.0.Final 安装到我的 Eclipse 2020_03 运行 Oracle JDK 1.8.0_92.我已经下载并解压缩 drools-distribution-7.36.0.Final
并在 Eclipse 首选项中将 binaries/
目录添加为 Drools > Installed Drools Runtimes
。
只要我使用任何 Java 1.5+ 功能(泛型、foreach 循环、闭包...),我就会在规则编辑器中收到错误标记,指出存在语法错误并且这些功能需要源代码1.5 级(1.8 关闭)。
我的 .drl 文件和项目本身似乎没问题,因为我可以通过 maven 编译和 运行 而不会出错。所以这不是一个阻塞问题,但令人恼火的是,我似乎无法在我的 IDE.
中对 .drl 文件进行语法检查。我已经在互联网上搜索并尝试了各种方法:
- 我已将项目和工作区中的 JDT 源级别设置为 1.8
- 我已经在属性中检查了已安装的 JRE,但只列出了一个 JDK 1.8.0_92
- 我在
/src/main/resources/META-INF/
中创建了一个包含此内容的kmodule.xml
文件
<?xml version="1.0" encoding="UTF-8"?>
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
<configuration>
<property key="drools.dialect.java.compiler.lnglevel" value="1.8" />
<property key="drools.dialect.java.compiler" value="ECLIPSE" />
<property key="drools.compiler.lnglevel" value="1.8" />
</configuration>
<kbase name="rules">
<ksession name="codegen-rules"/>
</kbase>
</kmodule>
- 我在
/src/main/resources/META-INF/
中创建了一个kie.properties.conf
文件,内容如下:
drools.dialect.java.compiler.lnglevel=1.8
drools.dialect.java.compiler=ECLIPSE
drools.compiler.lnglevel=1.8
- 我已经在我的
eclipse.ini
文件的 VM args 部分添加了属性:
-Ddrools.dialect.java.compiler.lnglevel=1.8
-Ddrools.dialect.java.compiler=ECLIPSE
-Ddrools.compiler.lnglevel=1.8
但是所有这些似乎都没有任何效果,它一直给我同样的错误标记。
在语法检查我的 .drl
文件时,如何告诉 规则编辑器 我想启用 Java 1.8 源级别?
我 运行 使用最新的 eclipse 版本和最新的 drools 版本来解决这个问题。
使用 Eclipse 2019-03
和 Jboss Tools Integration Stack
here 确实有效。因此,要么在后来的 eclipse 版本中出现问题,要么在后来的 drools 版本中出现问题。集成堆栈使用 7.21.0.Final
我还没有深入研究到底是什么坏了,但即使我知道了,我也不知道我会向谁报告:(