在我的情况下,有两个原因:
>有时人们会错误地导入存在于macbook JDK中但在@L_403_0@中不存在的类.这导致在基于Linux的盒子的ci服务器上构建失败.我不经常发生,但是当它确实发生时,我认为应该有一些更聪明的方法来更早地找到它.
>未使用的导入会在IDE /代码分析中触发警告.有时候有人需要花时间清理这些东西.即使只在IDE中单击右键,您仍然需要提交更改并确保所有内容都可以正常构建.
我很好奇是否有任何方法可以通过编程方式找到未使用的导入(比如单元测试),如果有的话就在本地失败.
也许由于未使用的导入声音失败,但是如果它为团队整体节省时间,那么这样做很有意义(也希望听到对此的意见).
更新:
我遵循了yegor256的建议,并将checkstyle任务与Sun Code Conventions的最初小部分(未使用的导入就是其中之一)结合起来,如果发现违规,它就会破坏构建.
经过一周的试用,我们的代码库中没有未使用的导入,并且令人惊讶的是没有关于此规则的抱怨(顺便说一下,checkstyle非常快 – 分析~100KLoc只需不到一秒钟)
至于使用IDE进行此类分析 – 是的,这是一个很好的选择,但是作为自动构建的一部分运行这种检查更好.
解决方法
你要做的是
static code analysis.
Checkstyle可以帮助你.如果你正在使用Maven,这个插件将为你做自动化:
http://maven.apache.org/plugins/maven-checkstyle-plugin/
你也可以看看qulice.com(我是它的开发人员之一),它集成了一些静态分析工具并预先配置它们(包括Checkstyle,PMD,FindBugs).