就我而言,这样做有两个原因:
我很好奇是否有任何方式可以通过编程方式找到未使用的导入(比如单元测试) 和 如果有的话就在本地失败。
由于未使用的导入声音可能导致构建失败,但是如果它为整个团队节省了时间,那么这样做很有意义(也希望听到对此的意见)。
更新:
我遵循了yegor256的建议,并将checkstyle任务与Sun Code Conventions的初始小部分(未使用的导入就是其中之一)合并在一起,并且如果发现违规,则会使其破坏构建。
经过一周的试用,我们的代码库中没有未使用的进口产品,而且对这条规则的投诉几乎没有(顺便说一下,checkstyle非常快 - 分析~100KLoc不到一秒钟)
至于使用IDE进行此类分析 - 是的,这是一个不错的选择,但在自动构建中运行此类检查更好。
答案 0 :(得分:6)
您要做的是static code analysis。 Checkstyle可以帮到你。如果你正在使用Maven,这个插件将为你做自动化:http://maven.apache.org/plugins/maven-checkstyle-plugin/
您还可以查看qulice.com(我是其开发人员之一),它集成了一些静态分析工具并预先配置它们(包括Checkstyle,PMD,FindBugs)。
答案 1 :(得分:4)
如果您使用的是eclipse IDE或IntelliJ IDEA,则可以将它们配置为
1a上。在保存或提交之前组织导入/删除未使用的导入(请参阅清理首选项)
1b中。将“未使用的导入”警告切换为错误(请参阅错误设置)
2a上。配置一个不包括com。* stuff
的jre2B。从jre配置专有api使用的警告是一个错误
但是,您可能仍希望在构建服务器上检查它。在这种情况下,仍然需要配置CheckStyle等更复杂的东西。
答案 2 :(得分:1)
我很好奇是否有任何方法可以通过编程方式找到未使用的导入(比如单元测试),如果存在则在本地构建失败。
我使用IntelliJ来组织导入,这会删除所有未使用的导入。您可以使用代码库顶部的一个热键来更正所有导入。 (它还有700多种其他类型的静态检查和修复)
由于未使用的导入声音可能导致构建失败,但是如果它为整个团队节省了时间,那么这样做很有意义(也希望听到对此的意见)。
我有IntelliJ检查代码格式化和导入组织,所以问题从来没有出现过。 ;)
答案 3 :(得分:0)
在计算机科学中,这种分析代码而不执行的过程的名称称为static code analysis
。
尝试使用IDE,我正在使用Eclipse,它使用黄色下划线标记所有未使用的导入和未使用的变量或方法....
答案 4 :(得分:0)
这些不相关的问题不是吗?如果导入仅存在于本地JDK中的类,则使用 这些导入(只是不满意)。对于这两个问题,我建议在IDE中解决它,以便在编写代码时检测到问题,而不是在签入之前检测到问题(检测越早,修复就越容易......)。
在eclipse中,您可以使用access rules阻止未满足的导入,并通过启用相应的save action在保存源文件时自动修复导入。如果您将这些设置检查到版本控制中,则可以轻松地与团队共享。
答案 5 :(得分:0)
我以相同的方式看到很多评论使用这个IDE或那个IDE。但我所有的朋友都试图了解其中的差异。以编程方式执行某些操作是不同的,使用IDE是不同的。
如果我想要一个程序化的过程,那么建议IDE是没有用的。有人可能会问这个问题,因为他正在构建完整的流程,而这一步是其中的一部分。打开IDE如何帮助他在CI工作的不同机器和操作系统上?
我也在类似的线上构建一个工具。我达到了某种程度,但它以编程方式打开IDE并自动关闭它并修复源代码。但是在Linux中打开它可能对我来说是一个问题。
在回答之前了解某人的观点非常重要。