Javadoc 옵션 지정

Javadoc 도구를 사용할 때에 몇 가지 옵션이 준비되어 있다. 여기에서는 각 옵션의 사용 방법에 대해 실제 예를 보면서 확인해 보겠다.

-help 옵션

-help 옵션은 온라인 도움말을 표시한다. javadoc 커멘드의 사용법과 옵션에 대한 설명이 표시된다.

다음과 같이 실행하십시오.

$ javadoc -help

실행 결과는 다음과 같이 표시된다.

$ javadoc -help
Usage: javadoc [options] [packagenames] [sourcefiles] [@files]
  -overview <file>                 Read overview documentation from HTML file
  -public                          Show only public classes and members
  -protected                       Show protected/public classes and members (default)
  -package                         Show package/protected/public classes and members
  -private                         Show all classes and members
  -help                            Display command line options and exit
  -doclet <class>                  Generate output via alternate doclet
  -docletpath <path>               Specify where to find doclet class files
  -sourcepath <pathlist>           Specify where to find source files
  -classpath <pathlist>            Specify where to find user class files
  -cp <pathlist>                   Specify where to find user class files
  -exclude <pkglist>               Specify a list of packages to exclude
  -subpackages <subpkglist>        Specify subpackages to recursively load
  -breakiterator                   Compute first sentence with BreakIterator
  -bootclasspath <pathlist>        Override location of class files loaded
                                   by the bootstrap class loader
  -source <release>                Provide source compatibility with specified release
  -extdirs <dirlist>               Override location of installed extensions
  -verbose                         Output messages about what Javadoc is doing
  -locale <name>                   Locale to be used, e.g. en_US or en_US_WIN
  -encoding <name>                 Source file encoding name
  -quiet                           Do not display status messages
  -J<flag>                         Pass <flag> directly to the runtime system
  -X                               Print a synopsis of nonstandard options and exit

Provided by Standard doclet:
  -d <directory>                   Destination directory for output files
  -use                             Create class and package usage pages
  -version                         Include @version paragraphs
  -author                          Include @author paragraphs
  -docfilessubdirs                 Recursively copy doc-file subdirectories
  -splitindex                      Split index into one file per letter
  -windowtitle <text>              Browser window title for the documentation
  -doctitle <html-code>            Include title for the overview page
  -header <html-code>              Include header text for each page
  -footer <html-code>              Include footer text for each page
  -top    <html-code>              Include top text for each page
  -bottom <html-code>              Include bottom text for each page
  -link <url>                      Create links to javadoc output at <url>
  -linkoffline <url> <url2>        Link to docs at <url> using package list at <url2>
  -excludedocfilessubdir <name1>:.. Exclude any doc-files subdirectories with given name.
  -group <name> <p1>:<p2>..        Group specified packages together in overview page
  -nocomment                       Suppress description and tags, generate only declarations.
  -nodeprecated                    Do not include @deprecated information
  -noqualifier <name1>:<name2>:... Exclude the list of qualifiers from the output.
  -nosince                         Do not include @since information
  -notimestamp                     Do not include hidden time stamp
  -nodeprecatedlist                Do not generate deprecated list
  -notree                          Do not generate class hierarchy
  -noindex                         Do not generate index
  -nohelp                          Do not generate help link
  -nonavbar                        Do not generate navigation bar
  -serialwarn                      Generate warning about @serial tag
  -tag <name>:<locations>:<header> Specify single argument custom tags
  -taglet                          The fully qualified name of Taglet to register
  -tagletpath                      The path to Taglets
  -charset <charset>               Charset for cross-platform viewing of generated documentation.
  -helpfile <file>                 Include file that help link links to
  -linksource                      Generate source in HTML
  -sourcetab <tab length>          Specify the number of spaces each tab takes up in the source
  -keywords                        Include HTML meta tags with package, class and member info
  -stylesheetfile <path>           File to change style of the generated documentation
  -docencoding <name>              Specify the character encoding for the output

영어가 보기 힘들다면 아래 번역번을 보도록 하자.

사용법 : javadoc [options] [packagenames] [sourcefiles] [@files]
-overview <file>                  HTML 파일에서 일반 문서를 로드
-public                           public 클래스와 멤버 만 표시한다.
-protected                        protected / public 클래스와 멤버를 표시한다. (기본값)
-package                          package / protected / public 클래스와 멤버를 표사한다.
-private                          모든 클래스와 멤버를 표사한다.
-help                             명령 줄 옵션을 표시하고 종료한다.
-doclet <class>                   대체 doclet을 통해 출력을 생성한다.
-docletpath <path>                doclet 클래스 파일을 찾는 위치를 지정한다.
-sourcepath <pathlist>            소스 파일의 위치를 지정한다.
-classpath <pathlist>             사용자 클래스 파일의 위치를 지정한다.
-exclude <pkglist>                제외 패키지 목록을 지정한다.
-subpackages <subpkglist>         재귀 적으로로드 할 서브 패키지를 지정한다.
-breakiterator                    BreakIterator에서 첫 번째 문장을 계산한다.
-bootclasspath <pathlist>         bootstrap 클래스 로더에 의해 로드 된 클래스 파일의 위치를 재정한다.
-source <release>                 지정된 버전과 소스 호환이 제공되는
-extdirs <dirlist>                확장 기능이 설치된 위치를 재정의
-verbose                          Javadoc의 동작에 대해 메시지를 출력한다
-locale <name>                    en_US와 en_US_WIN 등의 사용하는 로케일
-encoding <name>                  소스 파일의 인코딩 명
-quiet                            상태 메시지를 표시하지
-J <flag>                         <flag>를 실행 시스템에 직접 전달
-X                                비표준 옵션의 개요를 인쇄하고 종료한다.

표준 doclet에 의해 제공되는 것:
-d <directory>                    출력 파일의 대상 디렉터리
-use                              클래스 및 패키지의 사용 페이지를 작성한다.
-version                          @version 문단을 포함한다.
-author                           @author 문단을 포함한다.
-docfilessubdirs                  doc-file 하위 디렉터리를 재귀 적으로 복사한다.
-splitindex                       1자당 1개의 파일에 색인을 분할한다.
-windowtitle <text>               문서의 브라우저 창 제목
-doctitle <html-code>             소개 페이지에 제목을 포함한다.
-header <html-code>               각 페이지에 헤더를 포함한다.
-footer <html-code>               각 페이지에 바닥 글을 포함한다.
-top <html-code>                  각 페이지 상단 텍스트를 포함한다.
-bottom <html-code>               각 페이지 하단 텍스트를 포함한다.
-link <url>                       <url>에 javadoc 출력에 대한 링크를 작성한다.
-linkoffline <url> <url2>         <url2>에 있는 패키지 목록을 사용하여 <url>의 docs에 연결한다.
-excludedocfilessubdir <name1>:.. 지정된 이름의 doc-files 서브 디렉터리를 모든 제외한다.
-group <name> <p1>:<p2>..         지정 패키지를 요약 페이지에서 그룹화한다.
-nocomment                        기술 및 태그를 억제하고 선언만을 생성한다.
-nodeprecated                     @deprecated 정보를 제외한다.
-noqualifier <name1>:<name2>...   출력에서 한정자 목록 제외한다.
-nosince                          @since 정보를 제외한다.
-notimestamp                      숨겨진 타임 스탬프를 제외한다.
-nodeprecatedlist                 deprecated 목록을 생성하지 않는다.
-notree                           클래스 계층을 생성하지 않는다.
-noindex                          색인을 생성하지 않는다.
-nohelp                           도움말 링크를 생성하지 않는다.
-nonavbar                         탐색 모음을 생성하지 않는다.
-serialwarn @serial               태그에 대한 경고를 생성하지 않는다.
-tag <name>:<locations>:<header>  단일 인수를 가지는 사용자 정의 태그를 지정한다.
-taglet                           taglet의 전체 이름(FQN)을 등록한다.
-tagletpath                       taglet 경로
-charset <charset>                생성되는 문서의 크로스 플랫폼의 문자 인코딩
-helpfile <file>                  도움말 링크의 대상 파일을 포함한다.
-linksource                       HTML 형식으로 소스를 생성한다.
-sourcetab <tab length>           소스 탭 공백 문자의 수를 지정한다.
-keywords                         HTML의 meta 태그 패키지, 클래스, 및 미세 회원의 정보를 포함한다.
-stylesheetfile <path>            생성 된 문서의 스타일 변경용 파일
-docencoding <name>               출력 인코딩 이름

중요한 몇가지 옵션에 대해서는 이어서 확인해 보도록 하자.

-d 옵션

-d 옵션은 생성 된 문서의 대상 디렉터리를 지정한다. 디렉터리는 상대 경로 또는 절대 경로로 지정한다.

사용법은 다음과 같다.

$ javadoc -d {출력하는 디렉터리 혹은 대상 파일}

예를 들면 다음과 같이 실행한다.

$ javadoc -d doc Sample.java
$ javadoc -d sample/doc Sample.java
$ javadoc -d /Users/devkuma/javadoc/doc Sample.java

1번째와 2번째는 상대 경로로 지정하였다. 1번째는 “javadoc"명령을 실행한 디렉터리에 “doc"디렉터리를 만들고 그 안에 저장한다. 2번째는 “sample\doc"이란 디렉터리를 만들고 그 안에 저장한다. 3번째는 절대 경로로 지정한다. /Users/devkuma/javadoc/doc이란 디렉터리에 저장한다.

-d 옵션 실습

간단한 예를 실습해 보도록 하겠다.

/**
 * Javadoc 테스트용 클래스
 * 여러 줄로 작성할 수 있다.
 */
public class Sample02 {

    /**
     * 사이즈 설정
     *
     * @param width 폭
     * @param height 높이
     */
    public void setSize(int width, int height) {

    }
}

위에 소스 코드를 “Sample02.java"라는 파일명으로 저장하고 저장된 디렉터리에서 다음과 같이 실행한다.

$ javadoc -d doc/html Sample02.java

실행 결과는 아래와 같다.

$ javadoc -d doc/html Sample02.java
Loading source file Sample02.java...
Constructing Javadoc information...
Creating destination directory: "doc/html/"
Standard Doclet version 1.8.0_161
Building tree for all the packages and classes...
Generating doc/html/Sample02.html...
Generating doc/html/package-frame.html...
Generating doc/html/package-summary.html...
Generating doc/html/package-tree.html...
Generating doc/html/constant-values.html...
Building index for all the packages and classes...
Generating doc/html/overview-tree.html...
Generating doc/html/index-all.html...
Generating doc/html/deprecated-list.html...
Building index for all classes...
Generating doc/html/allclasses-frame.html...
Generating doc/html/allclasses-noframe.html...
Generating doc/html/index.html...
Generating doc/html/help-doc.html...

다음과 같이 javadoc를 실행한 디렉터리에 “doc/html"이란 디렉터리를 만들고, 그 안에 생성된 HTML 파일을 저장한다.

$ ls -al doc/html/
total 176
drwxr-xr-x  17 kimkc  staff    578 10 14 00:24 .
drwxr-xr-x  33 kimkc  staff   1122 10 14 00:24 ..
-rw-r--r--   1 kimkc  staff   8256 10 14 00:24 Sample02.html
-rw-r--r--   1 kimkc  staff    633 10 14 00:24 allclasses-frame.html
-rw-r--r--   1 kimkc  staff    613 10 14 00:24 allclasses-noframe.html
-rw-r--r--   1 kimkc  staff   3507 10 14 00:24 constant-values.html
-rw-r--r--   1 kimkc  staff   3457 10 14 00:24 deprecated-list.html
-rw-r--r--   1 kimkc  staff   7892 10 14 00:24 help-doc.html
-rw-r--r--   1 kimkc  staff   4190 10 14 00:24 index-all.html
-rw-r--r--   1 kimkc  staff   2744 10 14 00:24 index.html
-rw-r--r--   1 kimkc  staff   3684 10 14 00:24 overview-tree.html
-rw-r--r--   1 kimkc  staff    740 10 14 00:24 package-frame.html
-rw-r--r--   1 kimkc  staff      1 10 14 00:24 package-list
-rw-r--r--   1 kimkc  staff   3943 10 14 00:24 package-summary.html
-rw-r--r--   1 kimkc  staff   3693 10 14 00:24 package-tree.html
-rw-r--r--   1 kimkc  staff    827 10 14 00:24 script.js
-rw-r--r--   1 kimkc  staff  12842 10 14 00:24 stylesheet.css

-author 옵션

-author 옵션은 생성된 문서에 @author 태그로 지정된 저자를 출력하도록 지정한다. “-author” 옵션이 지정되지 않을 경우 @author 태그가 주석에 작성이 되어 있어도 생성되는 문서에 저자는 출력되지 않는다.

@author 태그에 대해서는 @author 태그 페이지를 참조하여라.

사용법은 다음과 같다.

$ javadoc -author [대상 파일]

예를 들어 다음과 같이 실행한다.

$ javadoc -author Sample.java

-author 옵션 실습

간단한 예를 실습해 보도록 하겠다.

/**
 * Javadoc 테스트용 클래스
 *
 * @author devkuma
 */
public class Sample05_1 {

    /**
     * 사이즈 설정
     *
     * @param width 폭
     * @param height 높이
     */
    public void setSize(int width, int height) {

    }
}

위에 소스 코드를 Sample05_1.java라는 파일명으로 저장하고 저장된 디렉터리에서 다음과 같이 실행한다.

$ javadoc -d doc -author Sample05_1.java

생성된 “doc"디렉터리에 있는 “Sample05.html” 파일을 브라우저로 확인해 보자.

javadoc

위와 같이 작성자에 대해 @author 태그에서 지정한 저자가 표시된다.

그럼 동일한 소스 파일로 -author 옵션을 지정하지 않고 다음과 같이 실행해 보자.

$ javadoc -d doc Sample05_1.java

생성된 “doc"디렉터리에 있는 “Sample05_1.html” 파일을 브라우저로 다시 확인해 보자.

javadoc

이번에는 @author 태그가 작성이 되어 있어도 작성자는 표시되지 않는다.

-version 옵션

-version 옵션은 생성된 문서에 @version 태그로 지정된 버전을 출력하도록 지정한다. -version 옵션이 지정되지 않을 경우 @version 태그가 코멘트 중에 작성되어 있어도 생성되는 문서 버전은 출력되지 않는다.

@version 태그에 대해서는 @version 태그 페이지를 참조하여라.

사용법은 다음과 같다.

$ javadoc -version [대상 파일]

예를 들어 다음과 같이 실행한다.

$ javadoc -version Sample.java

-version 옵션 실습

간단한 예를 실습해 보도록 하겠다.

/**
 * Javadoc 테스트용 클래스
 *
 * @version 1.0
 */
public class Sample06_1 {

    /**
     * 사이즈 설정
     *
     * @param width 폭
     * @param height 높이
     */
    public void setSize(int width, int height) {

    }
}

위에 소스 코드를 “Sample06_1.java"라는 파일명으로 저장하고 저장된 디렉터리에서 다음과 같이 실행한다.

$ javadoc -d doc -version Sample06_1.java

생성된 “doc"디렉터리에 있는 “Sample06_1.html” 파일을 브라우저로 확인해 보자.

javadoc

위와 같이 버전에 대해 @version 태그에서 지정한 저자가 표시된다.

그럼 동일한 소스 파일로 -version 옵션을 지정하지 않고 다음과 같이 실행해 보자.

$ javadoc -d doc Sample06_1.java

생성된 “doc"디렉터리에 있는 “Sample06_1.html” 파일을 브라우저로 다시 확인해 보자.

javadoc

이번에는 @version 태그가 작성이 되어 있어도 버전는 표시되지 않는다.




최종 수정 : 2019-10-20