I am creating a custom doclet that I want to run in my Maven build with the Javadoc plugin, but right now I'd like to test / d开发者_运维问答ebug the Doclet in Eclipse. How can I do that?
Do I have to invoke javadoc programmatically? And how?
you can simply create a main method in your doclet and call (example, see full cmdling reference):
public class MyDoclet extends Doclet {
public static void main(String[] args) {
com.sun.tools.javadoc.Main.execute("-doclet " + MyDoclet.class.getName());
}
}
That also works with the debugger.
You might also have to add the -classpath parameter containing all jar dependencies needed to parse the actual code.
If you are running JDK v1.8, you may need to use the following code snippet:
Main.execute(docletFqcn.getClass().getClassLoader(), "-doclet", docletFqcn, javaSourceFilePath);
where docletFqcn
is the fully qualified class name of your Doclet class and javaSourceFilePath
the location of the Java file to process.
I got error message with @Jan answer
Error:(13, 35) java: reference to execute is ambiguous
both method execute(java.lang.String...) in com.sun.tools.javadoc.Main and method execute(java.lang.String,java.lang.String...) in com.sun.tools.javadoc.Main match
After change to these code and it work well
com.sun.tools.javadoc.Main.execute(new String[]{
"-doclet", CustomDoclet.class.getName(),
"path/to/src/XXX.java"
});
精彩评论