Doclet:firstSentence为空 [英] Doclet: firstSentence is null

查看:115
本文介绍了Doclet:firstSentence为空的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Doclets做一些实验.我正在使用Java 7和Maven.

I'm doing some experiments with Doclets. I'm using Java 7 and Maven.

我的pom.xml是:

My pom.xml is:

<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处理的班级是

and my class I'm trying to process with doclet is

package betlista.tests.javadoc;

/**
 * My perfect class
 * 
 * @author me
 */
public class ClassToProcess {

    /**
     * My cool method.
     */
    private void foo() {

    }

}

根据我的理解,我很酷的方法".应该是第一句话,但是在调试中,当MyDoclet的processMethod()中有断点时,会有一个null值:

According to my understanding "My cool method." should be a first sentence, but in debug there is a null value when I have breakpoint in MyDoclet's processMethod():

一些想法我错过了什么?

Some ideas what I missed?

注意:我刚刚尝试过

<version>1.7.0</version>

没有变化...

推荐答案

您错过了课程描述之后的要点.

You missed the point after the class description.

这篇关于Doclet:firstSentence为空的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆