如何向 CFLint 规则添加参数

How to add parameters to CFLint rule

我想使用 CFLint 1.2.3 为内置 CFLint 规则设置特定参数。不幸的是,目前没有明确的描述如何做到这一点。

所以我尝试在配置中以不同的方式设置它们,看看 project test files and the provided JSON schema:

one of the test files中所定义:

{
  "rule" : [ 
    {
      "name": "VariableNameChecker",
      "className": "VariableNameChecker",
      "message": [
        {
          "code": "VAR_TOO_SHORT",
          "severity": "INFO",
          "messageText": "Variable ${variable} SHORTER THAN ${MinLength}!"
        }
      ],
      "parameter": [
        {
          "name": "MinLength",
          "value": "5"
        }
      ]
    }
  ],
  "inheritParent" : true
}

在规则对象内:

{
    "rule": [ ],
    "excludes": [ ],
    "includes": [
        {
            "code": "VAR_TOO_SHORT",
            {
               "parameter": {
                   "MinLength": "5"
               }
            }
        }
    ],
    "inheritParent": false
}

作为单独的全局 属性:

{
    "rule": [ ],
    "excludes": [ ],
    "includes": [
        {
            "code": "VAR_TOO_SHORT",
        }
    ],
    "parameter": {
        "MinLength": "5"
    }
    "inheritParent": false
}

我也尝试了不同的命名约定作为参数名称,如 VariableNameChecker.MinLength,并且还写了 parameters 而不是 parameter,尽管没有运气。

指定参数的正确语法是什么?

在 CFLint 1.3.0 之前覆盖插件参数的唯一方法是 (1) 将 cflint.definition.json 文件替换成你自己的 (2) 在Form ClassName DOT 参数中设置一个系统属性。例如:
java-DVariableNameChecker.MinLength=5 cflint-1.2.3-all.jar-文件

在 CFLint 1.3.0 中,以下内容将起作用:

{
    "parameters" : {
        "VariableNameChecker.MinLength": "5"
    }
}