如何向CFLint规则添加参数

问题描述 投票:0回答:1

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

所以我尝试在配置中以不同的方式设置它们,看看project test filesprovided 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,虽然没有运气。

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

json configuration code-analysis cfml cflint
1个回答
2
投票

在CFLint 1.3.0之前覆盖插件参数的唯一方法是(1)用您自己的(2)替换cflint.definition.json文件,以ClassName DOT参数的形式设置系统属性。例如: java -DVariableNameChecker.MinLength = 5 cflint-1.2.3-all.jar -file

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

{
    "parameters" : {
        "VariableNameChecker.MinLength": "5"
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.