我正在使用Doclets进行一些实验。我正在使用Java 7和Maven。
我的pom.xml是:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>betlista</groupId>
<artifactId>tests-javadoc</artifactId>
<version>1.0.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>sun.jdk</groupId>
<artifactId>tools</artifactId>
<version>1.5.0</version>
<scope>system</scope>
<systemPath>${java.home}/../lib/tools.jar</systemPath>
</dependency>
</dependencies>
</project>
我的doclet是:
package betlista.tests.javadoc;
import com.sun.javadoc.ClassDoc;
import com.sun.javadoc.MethodDoc;
import com.sun.javadoc.RootDoc;
public class MyDoclet {
public static boolean start(RootDoc root) {
ClassDoc[] classes = root.classes();
for (ClassDoc classDoc : classes) {
processClass(classDoc);
}
return true;
}
private static void processClass(ClassDoc classDoc) {
MethodDoc[] methods = classDoc.methods();
for (MethodDoc methodDoc : methods) {
processMethod(methodDoc);
}
}
private static void processMethod(MethodDoc methodDoc) {
System.out.println(methodDoc);
}
public static void main(String[] args) {
String[] params = new String[] {
"-private",
//"-docletpath", "c:\\betlista\\CAMS\\SVN\\cams\\trunk\\CamsSwaggerGenerator\\target\\classes",
"-doclet", "betlista.tests.javadoc.MyDoclet",
"-sourcepath", "C:\\betlista\\other\\sts_3.6.1_e4.4_ws\\tests-javadoc\\src\\main\\java",
"betlista.tests.javadoc"
};
com.sun.tools.javadoc.Main.execute(params);
}
}
和我正在尝试使用doclet处理的课程是
package betlista.tests.javadoc;
/**
* My perfect class
*
* @author me
*/
public class ClassToProcess {
/**
* My cool method.
*/
private void foo() {
}
}
根据我的理解“我很酷的方法”。应该是第一句话,但在调试中,当我在MyDoclet的null
中有断点时,有一个processMethod()
值:
我错过了哪些想法?
注意:我刚试过
<version>1.7.0</version>
并且没有变化......
答案 0 :(得分:0)
你在课堂描述后错过了这一点。