在 PDE 构建 属性 文件中将源级别设置为 Java 8

Setting source level to Java 8 in PDE build property file

我们目前正在尝试将我们的软件解决方案从以前的 Java 6 升级到 Java 8。我们已经成功地将所有内容升级到 运行 并继续我们的开发机器,但现在卡在我们的构建服务器上,无法使用 PDE 构建某些部件。

我们尝试更改 build.properties 文件中的多个设置,相应功能的清单,但无济于事。我还验证了 rt.jar 是文件的 java 8 版本。

我们得到的错误是:

Syntax error, annotations are only available if source level is 1.5 or greater

在生成问题的特定包的清单中,我们设置了:

Bundle-RequiredExecutionEnvironment: JavaSE-1.8

在我们设置的构建脚本的构建属性文件中:

bootClasspath=${java.home}/lib/rt.jar
JavaSE-1.8= ${java.home}/lib/rt.jar
path.jre = ${java.home}
javacSource=1.8
JavacTarget=1.8

此外,我们在项目的 Eclipse 设置中设置了一个特定的 Java 1.8 编译器,而不是默认的工作区。

同样在构建结束时我得到:

BUILD FAILED
    /QuickBuild/quickbuild-5.0.10/workspace/Eclipse-Builds/Client/buildscripts/buildRCP.xml:20: Java returned: 13

我找不到确切的答案是什么导致了 return13。显然这可能是 64 位 eclipse 和 32 位 JDK 不匹配,但也可能只是兼容性问题Java 1.8 错误。 在将我的编译器从调用它的 Ant 脚本设置为详细后,我能够找到行

12:47:37,579 INFO  - [java] Override ignored for property "javacSource"
12:47:37,579 INFO  - [java] Override ignored for property "javacTarget"

显然,编译器忽略了构建的设置并回退(或使用以前某处设置的版本)低于 1.5 的 java 版本来编译代码。我似乎无法确定它是否是我仍然缺少的设置,或者我在 build.properties 文件中犯了任何错误。日志似乎没有为属性文件中的错误输入生成任何错误。 有什么方法可以验证我在 属性 文件中设置的设置是否实际使用,或者我是否缺少设置?

我发现,大多数设置并未实际使用,因为 PDE 调用的实际脚本只是调用了 JDT 编译器,其源代码级别在 eclipse 项目的 jdt.core.prefs 文件中指定.由于我们构建服务器上的 eclipse 版本还不支持 Java 8,它无法弄清楚如何编译 Java 8 代码,并且必须以某种方式恢复到低于 1.5 的源代码级别进行编译. 在这种情况下,我将不得不查找如何用更新版本替换 JDT 编译器。