各位大神,小弟求救!领导又有了新想法……领导要求用PMD做java代码检查,想要找出java代码中的中文字符。我看仔细查阅了一下,个人认为不能用Xpath做,只能写java类继承AbstractRule(还有说是AbstractJavaRule 这个貌似是新版中的,我用的是pmd3.2.6.v200903300643)。于是查看网上的例子,网上各个帖子就是一大抄,现举例如下:
public class EmptyIfStmtRule extends AbstractRule implements Rule {
   //当源代码中呈现一个Block,下面的方式被调用
   public Object visit(ASTBlock node, Object data){
      //如果父节点是一个if语句且代码块里面没有任何内容
      if ((node.jjtGetParent().jjtGetParent() instanceof ASTIfStatement)
         && node.jjtGetNumChildren()==0) {
         //确定代码存在问题。把一个RuleViolation参加到Report。
         RuleContext ctx = (RuleContext)data;
         ctx.getReport().addRuleViolation(createRuleViolation(ctx,
            node.getBeginLine()));
      }
      //持续检查树的下一个节点
      return super.visit(node, data);
   }
}
但是eclipse中报错,说是createRuleViolation这个方法没定义!我该怎么办?网上没有找到PMD的API啊!!!
求助:
1、要实现用PMD检查代码中的中文字符改怎么写?可以用getImage()方法来检查是否有出了ascII码之外的字符么?
2、createRuleViolation这个方法是自定义的还是怎么搞出来的?
3、求一个PMD的API。哪位大神能解决小弟哪怕一个问题也行啊!小弟在此先行谢过,顿首百拜!

解决方案 »

  1.   

    会不会是他们用的版本不同?官网上http://pmd.sourceforge.net/ 显示Latest version 5.0.1 (28th November 2012
    API文档么?有http://pmd.sourceforge.net/pmd-5.0.1/
      

  2.   


    这个网址我看了,没有API的啊,或者你发个链接也行啊
      

  3.   


    官网我看了啊,在哪下的啊,是download everything from here 那个连接么?里面只有各个版本的源代码和bin文件夹啊,还一个rulesets index 那个是讲默认的附带规则的,和API扯不上关系啊
      

  4.   

    读源文件里的java doc,也可以自己制作。使用eclipse生成文档(javadoc)主要有三种方法:
    1,在项目列表中按右键,选择Export(导出),然后在Export(导出)对话框中选择java下的javadoc,提交到下一步。
    在Javadoc Generation对话框中有两个地方要注意的:
    javadoc command:应该选择jdk的bin/javadoc.exe
    destination:为生成文档的保存路径,可自由选择。
    按finish(完成)提交即可开始生成文档。
    2,用菜单选择:File->Export(文件->导出),
    剩下的步骤和第一种方法是一样的。
    3,选中要生成文档的项目,然后用菜单选择,
    Project->Generate Javadoc直接进入Javadoc Generation对话框,剩余的步骤就和第一种方法在Javadoc Generation对话框开始是一样的。 
      

  5.   


    好的,多谢,我研究一下,那createRuleViolation这个函数怎么用啊?