我想在Eclipse中定义和触发一些自定义的 Java 编译错误。基本上我希望某些方法中的某些系统调用会触发编译错误。
在这个讨论中,提出了一个基于注释的解决方案,但它不适合我的情况,因为我无法预测何时会发生编译错误。我想要的是,当开发人员进行系统调用时,例如会触发编译错误。
我想在Eclipse中定义和触发一些自定义的 Java 编译错误。基本上我希望某些方法中的某些系统调用会触发编译错误。
在这个讨论中,提出了一个基于注释的解决方案,但它不适合我的情况,因为我无法预测何时会发生编译错误。我想要的是,当开发人员进行系统调用时,例如会触发编译错误。
不完全是您要查找的内容,但请考虑使用自定义Checkstyle定义。这是 checkstyle 文档中的一个示例,它将调用标记System.out.println
为无效:
<module name="Regexp">
<!-- . matches any character, so we need to escape it and use \. to match dots. -->
<property name="format" value="System\.out\.println"/>
<property name="illegalPattern" value="true"/>
</module>
例如,如果您想阻止开发人员使用 java.lang.System,一个不错的技巧是在您的项目中创建一个自定义类java.lang.System,这样每次调用 java.lang.System 的任何方法(真正的) 会出现编译问题。
如果您使用 maven,您还可以在单独的 maven 项目中创建该类,并提供不与实际应用程序打包的范围。
完成类似事情的唯一方法是为 Eclipse 编写一个在构建期间分析代码的插件。但是这样做的细节确实超出了 StackOverflow 问题的范围。
您需要创建您的Builder
实现并将其注册到 Java 项目。
你可以从这里开始。