2011-03-09 4 views
4

메소드 나 클래스 용의 javadoc 코멘트가없는 경우, Javadoc가 경고를 생성하는 방법 (인수, 태그 렛, 도크 렛 등이 바람직합니다)이 있습니까? 나는 주변에 스카우트를 가지고있어 봤지만 관련성이있는 것으로 눈에 띄는 것은 아무것도 볼 수 없다. 나는 현재 모든 것이 Javadoc 주석 형식을 필요로하는 프로젝트에서 작업하고 있는데, 이것은이 목적에 유용 할 것이다.Javadoc가 코멘트 없음에 경고합니다.

편집 : checkstyle 같은 코드 품질 도구를 통해 이러한 일이 시행 될 수 있음을 알고 있습니다. Javadoc이 이와 같은 여러 가지 사항에 대해 경고하도록 구성하는 방법이 있는지 궁금합니다.

답변

2

Javadoc을 정말로 사용하고 싶다면 커스텀 검사 도크 렛이 도움이 될 것입니다. (개미)

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; 
    } 
} 

자체에 도크 렛을 실행이 출력을 제공합니다 : 여기

은 예입니다

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 

우리가 하나의 오류가 발견 될 때마다이 성공하지 싶은 경우를, 이 경우 start 메소드에서 false를 반환해야합니다.

7

이러한 규칙을 적용하려면 checkstyle을 시도해보십시오.

+0

발견해 주셔서 감사합니다. :) – Dunaril

+0

예, checkstyle이 최선의 방법이며 오류 유형의 심각도가 위반되면 빌드가 실패합니다. – asgs

+0

감사합니다. 이것은 지적할만한 가치가 있으며 checkstyle을 사용하여이 작업을 수행 할 수 있습니다. 나는 누군가가 알지 못했던 간단한 Javadoc 옵션이 있는지 궁금해했다. – berry120

1

이 작업은 PMD 또는 FindBug (가능하면 체크 스타일)와 같은 코드 분석 도구로 수행하는 것이 가장 좋습니다.

IntelliJ에는 없어진 javadoc 컨텐트를 채울 수 있고 정확성 검사/맞춤법 검사를 할 수있는 내장 체커가 있습니다.