【发布时间】:2009-10-09 17:21:22
【问题描述】:
我们的大部分项目都是使用 Maven 构建的,其中一些项目使用 com.sun 包中的类。这是一种不好的做法,但我对此无能为力。
有一段时间,这似乎不是一个大问题。然后,在某些时候,我的构建开始失败,出现以下错误:
java.lang.Error: Unresolved compilation problems:
Access restriction: The type TextSerializer is not accessible due to res
triction on required library C:\Program Files\Java\jre1.5.0_15\lib\rt.jar
这很公平,但我终其一生都想不出如何关闭该检查。从命令行和 Eclipse 中构建都失败了,所以我认为它一定是一些 Maven 设置。
最终我发现问题出在 Eclipse 上。我去了 Preferences > Java > Compiler > Errors/Warnings > Deprecated and restricted API 并将“Forbidden Reference”更改为“Warning”。此后,我的构建开始工作。这对我来说完全无法理解,因为我在从命令行构建时遇到了错误。
有人可以向我解释一下 Eclipse 设置如何以某种方式影响命令行构建的行为吗?!
【问题讨论】:
-
Eclipse 是否设置为使用与 Maven 相同的 JRE?
-
是的,Eclipse 设置为使用相同的 JRE。
-
如果您恢复 Eclipse 首选项,您的构建又开始失败了?