Java不需要介绍。几十年来,它一直被世界范围内的大多数软件工程界人士使用。就像所有可以使用的语言一样,即使有经验也很容易犯错,而犯错所花费的时间本可以更好地利用。
Java也是DeepSource最广泛要求使用的语言之一,我非常高兴地宣布Java分析器的测试版本。如果你正在使用DeepSource对你的代码进行持续的静态分析,你可以立即开始在你的项目中使用该分析器。
你为什么要关注?
围绕着Java编程语言的生态系统已经相当丰富和成熟,存在着许多由社区构建的静态分析工具--如SpotBugs、Error Prone等。那么,我们为什么要求你使用DeepSource呢?
DeepSource建立在社区已经完成的创新之上,使静态分析的结果对你来说更容易获得和操作。我们保证问题中的假阳性率低于5%,帮助您在每次提交和拉取请求时连续运行分析,几乎不需要配置,并使寻找和修复代码中的质量问题的整体体验更加愉快。
在测试版中,Java分析器可以检测到170多种不同类型的问题,包括性能错误、安全风险、错误风险和反模式。这个初始版本带来了对Gradle Java项目的支持。只要在配置分析器时指定你的项目所使用的Java版本,你就可以了。真的就这么简单
在未来,我们将很快增加对Android和Maven的支持,请密切关注此外,我们正在努力为Java分析器提供Autofix支持。这将使你不用写一行代码就能修复报告的错误。这不是很令人兴奋吗?✨
Java分析器检测到的一些问题
在写这篇文章的时候,Java分析器可以检测到173个不同的问题,包括性能问题、安全问题、潜在的(或确定的)bug,以及反模式。这些问题是由流行的SpotBugs工具涵盖的。下面是几个例子。
- 保证在空值时被取消引用的值
- 在使用方式上要求非空值的可空值
- 忽略一个具有非void返回类型的函数的返回值
- 自我分配到一个局部变量而不是一个字段
- 在本可以使用
Map.entrySet()的地方使用Map.keySet()
如何使用Java分析器?
你可以通过为你的 repo 的.deepsource.toml 文件中的[[analyzers]] 表添加一个条目来开始使用 Java 分析器。或者,在使用配置生成器后,从DeepSource版本库仪表板上激活您的Java repo。请到文档中查看可用配置选项的完整列表。
配置样本
version = 1
[[analyzers]]
name = "java"
enabled = true
[analyzers.meta]
runtime_version = "11"