就我而言,这样做有两个原因:
- 有时人们会错误地导入在 macbooks JDK 中存在但在 Linux 中不存在的类。这会导致在基于 Linux 的机器上的 ci 服务器上构建失败。我不经常发生,但是当它发生时,我想应该有一些更聪明的方法来更早地发现它。
- 未使用的导入在 IDE/代码分析中触发警告。有时有人需要花时间清理这些东西。即使只是在 IDE 中单击鼠标右键,您仍然需要提交更改并确保构建时一切正常。
我很好奇是否有任何方法可以以编程方式找到未使用的导入(让我们从单元测试中说)并在本地失败(如果有的话)。
也许由于未使用的导入而导致构建失败听起来很苛刻,但如果它为整个团队节省了时间,那么这样做是有道理的(也很想听听对此的意见)。
更新:
我遵循了 yegor256 的建议,并将 Checkstyle 任务与最初的一小部分Sun 代码约定(未使用的导入就是其中之一)合并,并在发现违规时使其中断构建。
经过一周的试用,我们的代码库中未使用的导入为零,令人惊讶的是,对此规则的投诉为零(顺便说一下,Checkstyle 非常快:分析 ~100KLoc 只需不到一秒的时间)。
至于使用 IDE 进行此类分析:是的,这是一个不错的选择,但是将这种检查作为自动构建的一部分运行会更好。