如何使用声纳规则在Java代码中查找特定的代码出现

时间:2018-12-03 10:14:03

标签: java sonarqube

我想给开发人员一些建议,例如:不建议使用System.currentTimeMillis()并提供一些注释以及其他解决方案。

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

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

此处example使用声纳设置自定义方法警告:

@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);
    }

}