如何使用sonar规则在java代码中找到特定的代码出现



我想给开发人员建议,例如:不建议使用System.currentTimeMillis((,并提供一些关于替代解决方案的意见。

AFAIK没有这样的声纳规则,我应该创建一个新规则还是可以选择参数化现有规则?

我发现不再支持针对java的xpath,所以我认为编写自定义规则是唯一的方法,这是对的吗?

您正在寻找模板规则S2253,它允许您标记对特定方法的调用。

下面是使用声纳设置自定义方法警告的示例:

@Rule(key = "NoObjectWaitRule",
name = "NoObjectWaitRule",
description = "You should not use classic wait/notify mechanism. Instead use Java Concurrency API.",
priority = Priority.MAJOR,
tags =
{
"bad-practice"
})
public class NoObjectWaitRule extends DisallowedMethodCheck
{
public NoObjectWaitRule()
{
super.setClassName("java.lang.Object");
super.setMethodName("wait");
super.setAllOverloads(true);
}
}

最新更新