java - 如何在 eclipse : without maven? 的 checkStyle 中使用自定义检查

标签 java eclipse checkstyle

我正在尝试编写自定义检查并从 Eclipse 中使用它。

我为此编写了一个 MethodLimitCheck.java 和一个 myChecker.xml 文件。


Java 文件:MethodLimitCheck.java

package myCheck;

import com.puppycrawl.tools.checkstyle.api.*;

public class MethodLimitCheck extends Check
{
    private static final int DEFAULT_MAX = 10;
    private int max = DEFAULT_MAX;

    public void setMax(int limit)
    {
        max = limit;
    }

    @Override
    public int[] getDefaultTokens()
    {
        return new int[]{TokenTypes.CLASS_DEF, TokenTypes.INTERFACE_DEF};
    }

    @Override
    public void visitToken(DetailAST ast)
    {
        DetailAST objBlock = ast.findFirstToken(TokenTypes.OBJBLOCK);

        int methodDefs = objBlock.getChildCount(TokenTypes.METHOD_DEF);

        if (methodDefs > this.max) 
        {
            log(ast.getLineNo(),
                    "too many methods, only " + this.max + " are allowed");
        }
    }
}

和 xml 文件:myChecker.xml

<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
    "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
    "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
<module name="Checker">
  <module name="TreeWalker">
    <module name="myCheckStyle.MethodLimitCheck">
      <property name="max" value="5" />
    </module>
  </module>
</module>

如何在 Eclipse 中使用此检查?

我从 CheckStyle site 中获取了这个例子.但是如何在 Eclipse 中使用它呢?

我需要在 eclipse 中获取警告,例如当我使用可用的检查并形成自定义配置时,可以从 project->property->checkStyle 使用它。

我是这个工具的新手,所以如果我遗漏了一些基本的东西,请纠正我。

最佳答案

你需要eclipse-cs插入。它将 checkstyle 集成到 eclipse 中并允许提供自定义检查。 另外,看看 sevntu.checkstyle .它是 eclipse-cs 插件的扩展。 Sevntu.checkstyle 添加了许多有用的检查并允许附加您自己的检查(请参阅 github 上的 wiki)。也许它包含您需要的支票。

关于java - 如何在 eclipse : without maven? 的 checkStyle 中使用自定义检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17994073/

相关文章:

java - CheckStyle 生成 html 报告

java - 在方法级别过滤 servlet

java - 带有事务轮询器 Java 配置的 Spring Integration JPA 入站 channel 适配器

eclipse:将空格数更改为缩进/取消缩进

android - Eclipse Android XML 内容辅助不起作用

java - 格子样式的 80 字符规则在今天是否仍然有意义?

checkstyle - Java Checkstyle 规则限制方法空行

java - 使用 ActiveMQ 的 JMeter JMS 点对点采样器

java - 优化 Java 代码

eclipse - git revert 在 Egit 中