我有一个预先存在的 Java 项目,最近应用了声纳分析。存在大量的 CheckStyle JavadocMethod 规则违规。
我将如何限制 JavadocMethod 规则,仅适用于模式为“ Controller .java”的 java 文件名?
我有一个预先存在的 Java 项目,最近应用了声纳分析。存在大量的 CheckStyle JavadocMethod 规则违规。
我将如何限制 JavadocMethod 规则,仅适用于模式为“ Controller .java”的 java 文件名?
JavadocMethod检查不提供将自身限制为某些文件的选项,因此这不容易完成。但是 - 你可以:
编写一个自定义过滤器,该过滤器禁止出现在与模式不匹配的文件中的所有JavadocMethod警告。这并不难 - 链接页面上的示例仅涵盖这种情况。但这需要您部署过滤器,这可能有点麻烦。
我不确定这是否适用于声纳。我一直在 Sonar 中使用自定义 Checkstyle 检查,但我还没有尝试过自定义过滤器。
编写一个 Checkstyle 的子类,JavadocMethodCheck
它添加了一个仅将自身应用于某些文件的选项(Sonar 示例,Checkstyle 教程)。如果无法将自定义过滤器添加到 Sonar,这是一个肯定的选择。
如果您使用的是 Eclipse,则可以将其配置为根据文件名使用不同的规则集。您可以使用项目属性中的“高级”配置设置来做到这一点。您的正则表达式将Controller\.java$
匹配所有控制器,并.{10}(?<!Controller)\.java$
匹配其他 Java 文件。这种方法也可以应用于独立的或基于 Ant 的 Checkstyle 运行,但不适用于 Sonar。
很抱歉,没有什么比您更容易获得的了——但这就是目前的情况......
祝你好运!