在Eclipse中设置编译器

时间:2018-08-15 07:23:15

标签: java eclipse

我已经使用OpenJDK修改Java编译器以显示其他警告。现在,我想在Eclipse中使用此编译器。

根据this答案,Eclipse使用增量编译器。有没有办法禁用增量编译器并设置我的自定义编译器的路径?可以使用插件吗?

或者,如果这不可能,那么如何自己构建Eclipse?

3 个答案:

答案 0 :(得分:1)

我同意greg-449的评论:据我所知,用于在eclipse编辑器窗口中为您提供语法高亮和警告的编译器已被烘焙到eclipse中。除此之外,eclipse JDT还提供了扩展点,这些扩展点可能允许您执行某些需要考虑的事情。有关更多详细信息,请参见他们的documentation

不过,我的独特答案是:不要那样做。不要发明自己的工具链元素来提高代码质量。它们仅对您有用,并且对您的特殊日食设置有效。

相反:像下面这样

:研究现有工具以提供所需的内容
  • Eclipse允许您enable许多默认javac不提供的警告/错误
  • IntelliJ甚至超越了这一范围。您可以使用该IDE进行无数次的“检查”
  • 考虑在静态代码分析工具(例如PMD或findbugs)中查找

答案 1 :(得分:1)

增量Eclipse编译器是Eclipse的核心组件,因此不容易修改或替换。 抽象语法树(AST)不仅用于在此过程中将源代码编译为字节码并查找错误,而且还用于代码突出显示,导航,搜索,重构等。

在Eclipse中,抽象语法树是公共API ,可以创建而无需修改或替换编译器:请参见Eclipse help - JDT Plug-in Developer Guide - Manipulating Java code

或者,您可以SpotBugs 中添加规则,可以将其视为FindBugs的后继者。 SpotBugs读取字节码(不是源代码),并基于ASM(与Eclipse或OpenJDK编译器具有不同的AST API)创建AST。使用SpotBugs的好处是您不需要自己实现对发现的bug和其他UI东西的显示。

还要回答您的最后一个问题(如果您使用的是Eclipse的公共AST API或SpotBugs,则不相关):可以构建Eclipse。 G。通过Eclipse IDE或Maven扩展Tycho(由Eclipse项目本身使用,例如,基于此by JDT via Jenkinspom.xml使用)来实现。

答案 2 :(得分:1)

Eclipse增量编译器是JDT模块的一部分。禁用它还会禁用您可能不想错过的功能,例如语法高亮显示。

但是,您可以使用插件通过compilationParticipant扩展点在JDT中修改增量编译器。您可以使用这种方法在各种编译步骤中放置自己的代码。