我想使用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
,虽然没有运气。
指定参数的正确语法是什么?
在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"
}
}