如果没有为方法或类提供javadoc注释,是否有一种方法(最好通过参数,taglet,doclet或类似方法)使Javadoc生成警告?我已经对这些选项和Googled进行了侦查,但是看不到任何与之相关的东西。我目前正在从事一个项目,其中所有内容都需要某种形式的Javadoc注释,这对于实现此目的真的很有用。
编辑:我知道可以通过诸如checkstyle之类的代码质量工具来强制执行此类操作,我只是想知道是否有一种方法可以配置Javadoc来警告诸如此类的不同内容。
如果您真的想使用Javadoc,则可以使用自定义检查doclet。
这是一个例子:
package de.fencing_game.paul.examples.doclet;
import com.sun.javadoc.*;
public class CheckingDoclet extends Doclet {
private static void checkElement(ProgramElementDoc ped,
DocErrorReporter err) {
if(ped.commentText().equals("")) {
err.printError(ped.position(), ped + " has no documentation!");
}
}
private static void checkAll(ProgramElementDoc[] array,
DocErrorReporter err) {
for(ProgramElementDoc ped : array) {
checkElement(ped, err);
}
}
public static boolean start(RootDoc root) {
for(ClassDoc clazz : root.classes()) {
checkElement(clazz, root);
checkAll(clazz.constructors(), root);
checkAll(clazz.fields(), root);
checkAll(clazz.enumConstants(), root);
checkAll(clazz.methods(), root);
}
return true;
}
}
在本身(使用ant)上运行doclet会给出以下输出:
doccheck.doclet:
[javadoc] Generating Javadoc
[javadoc] Javadoc execution
[javadoc] Loading source files for package de.fencing_game.paul.examples.doclet...
[javadoc] Constructing Javadoc information...
[javadoc] de/fencing_game/paul/examples/doclet/CheckingDoclet.java:7: error - de.fencing_game.paul.examples.doclet.CheckingDoclet has no documentation!
[javadoc] de/fencing_game/paul/examples/doclet/CheckingDoclet.java:7: error - de.fencing_game.paul.examples.doclet.CheckingDoclet() has no documentation!
[javadoc] de/fencing_game/paul/examples/doclet/CheckingDoclet.java:9: error - de.fencing_game.paul.examples.doclet.CheckingDoclet.checkElement(com.sun.javadoc.ProgramElementDoc, com.sun.javadoc.DocErrorReporter) has no documentation!
[javadoc] de/fencing_game/paul/examples/doclet/CheckingDoclet.java:16: error - de.fencing_game.paul.examples.doclet.CheckingDoclet.checkAll(com.sun.javadoc.ProgramElementDoc[], com.sun.javadoc.DocErrorReporter) has no documentation!
[javadoc] de/fencing_game/paul/examples/doclet/CheckingDoclet.java:23: error - de.fencing_game.paul.examples.doclet.CheckingDoclet.start(com.sun.javadoc.RootDoc) has no documentation!
[javadoc] 5 errors
BUILD SUCCESSFUL
Total time: 2 seconds
如果我们希望在发现一个错误时不成功,那么在这种情况下,我们应该从启动方法中返回false。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句