我想使用CFLint 1.2.3为内置CFLint规则设置特定参数。不幸的是,目前还没有明确的描述如何做到这一点。
所以我尝试在配置中以不同的方式设置它们,看看project test files和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
,但没有运气。
指定参数的正确语法是什么?
答案 0 :(得分:2)
在CFLint 1.3.0之前覆盖插件参数的唯一方法是
(1)用你自己的文件替换cflint.definition.json文件
(2)以ClassName DOT参数的形式设置系统属性。例如:
java -DVariableNameChecker.MinLength = 5 cflint-1.2.3-all.jar -file
在CFLint 1.3.0中,以下内容将起作用:
{
"parameters" : {
"VariableNameChecker.MinLength": "5"
}
}