各位大神,小弟求救!领导又有了新想法……领导要求用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。哪位大神能解决小弟哪怕一个问题也行啊!小弟在此先行谢过,顿首百拜!
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。哪位大神能解决小弟哪怕一个问题也行啊!小弟在此先行谢过,顿首百拜!
API文档么?有http://pmd.sourceforge.net/pmd-5.0.1/
这个网址我看了,没有API的啊,或者你发个链接也行啊
官网我看了啊,在哪下的啊,是download everything from here 那个连接么?里面只有各个版本的源代码和bin文件夹啊,还一个rulesets index 那个是讲默认的附带规则的,和API扯不上关系啊
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对话框开始是一样的。
好的,多谢,我研究一下,那createRuleViolation这个函数怎么用啊?