Skip to content

CLI

어떤 이유로든 Gradle 또는 Maven 빌드 도구를 사용할 수 없다면, Dokka는 문서를 생성하기 위한 명령줄 (CLI) 러너를 제공합니다.

비교해 보면, Dokka용 Gradle 플러그인과 동일하거나 그 이상의 기능을 가지고 있습니다. 하지만 자동 구성 기능이 없어 특히 멀티플랫폼 및 멀티 모듈 환경에서는 설정하기가 상당히 더 어렵습니다.

시작하기

CLI 러너는 별도의 실행 가능한 아티팩트로 Maven Central에 게시됩니다.

Maven Central에서 찾거나 직접 다운로드할 수 있습니다.

컴퓨터에 dokka-cli-2.0.0.jar 파일을 저장한 후, -help 옵션과 함께 실행하여 사용 가능한 모든 구성 옵션과 설명을 확인할 수 있습니다:

Bash
java -jar dokka-cli-2.0.0.jar -help

일부 중첩 옵션(예: -sourceSet)에도 동일하게 적용됩니다:

Bash
java -jar dokka-cli-2.0.0.jar -sourceSet -help

문서 생성

사전 준비 사항

종속성을 관리할 빌드 도구가 없으므로, 종속성 .jar 파일을 직접 제공해야 합니다.

아래는 모든 출력 형식에 필요한 종속성 목록입니다:

그룹아티팩트버전링크
org.jetbrains.dokkadokka-base2.0.0download
org.jetbrains.dokkaanalysis-kotlin-descriptors2.0.0download

아래는 HTML 출력 형식에 필요한 추가 종속성입니다:

그룹아티팩트버전링크
org.jetbrains.kotlinxkotlinx-html-jvm0.8.0download
org.freemarkerfreemarker2.3.31download

명령줄 옵션으로 실행

CLI 러너를 구성하기 위해 명령줄 옵션을 전달할 수 있습니다.

최소한 다음 옵션을 제공해야 합니다:

  • -pluginsClasspath - 다운로드된 종속성들의 절대/상대 경로 목록이며, 세미콜론(;)으로 구분됩니다.
  • -sourceSet - 문서를 생성할 코드 소스의 절대 경로입니다.
  • -outputDir - 문서 출력 디렉토리의 절대/상대 경로입니다.
Bash
java -jar dokka-cli-2.0.0.jar \
     -pluginsClasspath "./dokka-base-2.0.0.jar;./analysis-kotlin-descriptors-2.0.0.jar;./kotlinx-html-jvm-0.8.0.jar;./freemarker-2.3.31.jar" \
     -sourceSet "-src /home/myCoolProject/src/main/kotlin" \
     -outputDir "./dokka/html"

제공된 예시를 실행하면 HTML 출력 형식으로 문서가 생성됩니다.

더 자세한 구성 정보는 명령줄 옵션을 참조하십시오.

JSON 구성으로 실행

CLI 러너를 JSON으로 구성할 수 있습니다. 이 경우, JSON 구성 파일의 절대/상대 경로를 첫 번째이자 유일한 인수로 제공해야 합니다. 다른 모든 구성 옵션은 해당 파일에서 파싱됩니다.

Bash
java -jar dokka-cli-2.0.0.jar dokka-configuration.json

최소한 다음 JSON 구성 파일이 필요합니다:

json
{
  "outputDir": "./dokka/html",
  "sourceSets": [
    {
      "sourceSetID": {
        "scopeId": "moduleName",
        "sourceSetName": "main"
      },
      "sourceRoots": [
        "/home/myCoolProject/src/main/kotlin"
      ]
    }
  ],
  "pluginsClasspath": [
    "./dokka-base-2.0.0.jar",
    "./kotlinx-html-jvm-0.8.0.jar",
    "./analysis-kotlin-descriptors-2.0.0.jar",
    "./freemarker-2.3.31.jar"
  ]
}

더 자세한 내용은 JSON 구성 옵션을 참조하십시오.

기타 출력 형식

기본적으로 dokka-base 아티팩트는 HTML 출력 형식만 포함합니다.

다른 모든 출력 형식은 Dokka 플러그인으로 구현됩니다. 이를 사용하려면 플러그인 클래스패스에 추가해야 합니다.

예를 들어, 실험적인 GFM 출력 형식으로 문서를 생성하려면 gfm-plugin의 JAR(다운로드)을 다운로드하여 pluginsClasspath 구성 옵션에 전달해야 합니다.

명령줄 옵션을 통해:

Shell
java -jar dokka-cli-2.0.0.jar \
     -pluginsClasspath "./dokka-base-2.0.0.jar;...;./gfm-plugin-2.0.0.jar" \
     ...

JSON 구성을 통해:

json
{
  ...
  "pluginsClasspath": [
    "./dokka-base-2.0.0.jar",
    "...",
    "./gfm-plugin-2.0.0.jar"
  ],
  ...
}

GFM 플러그인을 pluginsClasspath에 전달하면, CLI 러너는 GFM 출력 형식으로 문서를 생성합니다.

더 자세한 정보는 MarkdownJavadoc 페이지를 참조하십시오.

명령줄 옵션

모든 가능한 명령줄 옵션과 자세한 설명을 보려면 다음을 실행하십시오:

Bash
java -jar dokka-cli-2.0.0.jar -help

간략 요약:

옵션설명
moduleName프로젝트/모듈의 이름.
moduleVersion문서화된 버전.
outputDir출력 디렉토리 경로, 기본값은 ./dokka.
sourceSetDokka 소스 세트의 구성. 중첩된 구성 옵션을 포함합니다.
pluginsConfigurationDokka 플러그인 구성.
pluginsClasspathDokka 플러그인과 해당 종속성을 포함하는 JAR 파일 목록. 세미콜론으로 구분된 여러 경로를 허용합니다.
offlineMode네트워크를 통해 원격 파일/링크를 확인할지 여부.
failOnWarningDokka가 경고 또는 오류를 발생시킨 경우 문서 생성을 실패시킬지 여부.
delayTemplateSubstitution일부 요소의 대체를 지연할지 여부. 멀티 모듈 프로젝트의 증분 빌드에 사용됩니다.
noSuppressObviousFunctionskotlin.Anyjava.lang.Object에서 상속된 명백한 함수를 억제할지 여부.
includes모듈 및 패키지 문서를 포함하는 Markdown 파일. 세미콜론으로 구분된 여러 값을 허용합니다.
suppressInheritedMembers주어진 클래스에서 명시적으로 오버라이드되지 않은 상속된 멤버를 억제할지 여부.
globalPackageOptions"matchingRegex,-deprecated,-privateApi,+warnUndocumented,+suppress;+visibility:PUBLIC;..." 형식의 전역 패키지 구성 옵션 목록. 세미콜론으로 구분된 여러 값을 허용합니다.
globalLinks{url}^{packageListUrl} 형식의 전역 외부 문서 링크. ^^로 구분된 여러 값을 허용합니다.
globalSrcLink소스 디렉토리와 코드를 탐색하기 위한 웹 서비스 간의 전역 매핑. 세미콜론으로 구분된 여러 경로를 허용합니다.
helpSourceSet중첩된 -sourceSet 구성에 대한 도움말을 출력합니다.
loggingLevel로깅 수준, 가능한 값: DEBUG, PROGRESS, INFO, WARN, ERROR.
help, h사용 정보.

소스 세트 옵션

중첩된 -sourceSet 구성에 대한 명령줄 옵션 목록을 보려면 다음을 실행하십시오:

Bash
java -jar dokka-cli-2.0.0.jar -sourceSet -help

간략 요약:

옵션설명
sourceSetName소스 세트의 이름.
displayName소스 세트의 표시 이름으로, 내부 및 외부에서 모두 사용됩니다.
classpath분석 및 대화형 샘플을 위한 클래스패스. 세미콜론으로 구분된 여러 경로를 허용합니다.
src분석 및 문서화할 소스 코드 루트. 세미콜론으로 구분된 여러 경로를 허용합니다.
dependentSourceSetsmoduleName/sourceSetName 형식의 종속 소스 세트 이름. 세미콜론으로 구분된 여러 값을 허용합니다.
samples샘플 함수를 포함하는 디렉토리 또는 파일 목록. 세미콜론으로 구분된 여러 경로를 허용합니다.
includes모듈 및 패키지 문서를 포함하는 Markdown 파일. 세미콜론으로 구분된 여러 경로를 허용합니다.
documentedVisibilities문서화할 가시성. 세미콜론으로 구분된 여러 값을 허용합니다. 가능한 값: PUBLIC, PRIVATE, PROTECTED, INTERNAL, PACKAGE.
reportUndocumented문서화되지 않은 선언을 보고할지 여부.
noSkipEmptyPackages빈 패키지에 대한 페이지를 생성할지 여부.
skipDeprecated더 이상 사용되지 않는 선언을 건너뛸지 여부.
jdkVersionJDK Javadoc 링크에 사용할 JDK 버전.
languageVersion분석 및 샘플 설정에 사용되는 언어 버전.
apiVersion분석 및 샘플 설정에 사용되는 Kotlin API 버전.
noStdlibLinkKotlin 표준 라이브러리에 대한 링크를 생성할지 여부.
noJdkLinkJDK Javadoc에 대한 링크를 생성할지 여부.
suppressedFiles억제할 파일 경로. 세미콜론으로 구분된 여러 경로를 허용합니다.
analysisPlatform분석 설정에 사용되는 플랫폼.
perPackageOptionsmatchingRegexp,-deprecated,-privateApi,+warnUndocumented,+suppress;... 형식의 패키지 소스 세트 구성 목록. 세미콜론으로 구분된 여러 값을 허용합니다.
externalDocumentationLinks{url}^{packageListUrl} 형식의 외부 문서 링크. ^^로 구분된 여러 값을 허용합니다.
srcLink소스 디렉토리와 코드를 탐색하기 위한 웹 서비스 간의 매핑. 세미콜론으로 구분된 여러 경로를 허용합니다.

JSON 구성

아래는 각 구성 섹션에 대한 몇 가지 예시와 자세한 설명입니다. 페이지 하단에서 모든 구성 옵션이 적용된 예시도 찾을 수 있습니다.

일반 구성

json
{
  "moduleName": "Dokka Example",
  "moduleVersion": null,
  "outputDir": "./build/dokka/html",
  "failOnWarning": false,
  "suppressObviousFunctions": true,
  "suppressInheritedMembers": false,
  "offlineMode": false,
  "includes": [
    "module.md"
  ],
  "sourceLinks":  [
    { "_comment": "Options are described in a separate section" }
  ],
  "perPackageOptions": [
    { "_comment": "Options are described in a separate section" }
  ],
  "externalDocumentationLinks":  [
    { "_comment": "Options are described in a separate section" }
  ],
  "sourceSets": [
    { "_comment": "Options are described in a separate section" }
  ],
  "pluginsClasspath": [
    "./dokka-base-2.0.0.jar",
    "./kotlinx-html-jvm-0.8.0.jar",
    "./analysis-kotlin-descriptors-2.0.0.jar",
    "./freemarker-2.3.31.jar"
  ]
}
moduleName

모듈을 참조하는 데 사용되는 표시 이름입니다. 목차, 탐색, 로깅 등에 사용됩니다.

기본값: root

moduleVersion

모듈 버전입니다.

기본값: 비어 있음

outputDirectory

출력 형식과 상관없이 문서가 생성되는 디렉토리입니다.

기본값: ./dokka

failOnWarning

Dokka가 경고 또는 오류를 발생시킨 경우 문서 생성을 실패시킬지 여부입니다. 프로세스는 모든 오류 및 경고가 먼저 발생할 때까지 기다립니다.

이 설정은 reportUndocumented와 잘 작동합니다.

기본값: false

suppressObviousFunctions

명백한 함수를 억제할지 여부입니다.

함수가 다음 조건 중 하나를 충족하면 명백하다고 간주됩니다:
  • kotlin.Any, Kotlin.Enum, java.lang.Object 또는 java.lang.Enum에서 상속된 함수(예: equals, hashCode, toString).
  • 합성(컴파일러가 생성)되었고 어떠한 문서도 없는 함수(예: dataClass.componentN 또는 dataClass.copy).

기본값: true

suppressInheritedMembers

주어진 클래스에서 명시적으로 오버라이드되지 않은 상속된 멤버를 억제할지 여부입니다.

참고: 이 옵션은 equals / hashCode / toString과 같은 함수를 억제할 수 있지만, dataClass.componentNdataClass.copy와 같은 합성 함수는 억제할 수 없습니다. 이를 위해서는 suppressObviousFunctions를 사용하십시오.

기본값: false

offlineMode

네트워크를 통해 원격 파일/링크를 확인할지 여부입니다.

이는 외부 문서 링크 생성에 사용되는 패키지 목록을 포함합니다. 예를 들어, 표준 라이브러리의 클래스를 클릭 가능하게 만드는 경우입니다.

이 값을 true로 설정하면 특정 경우에 빌드 시간을 크게 단축할 수 있지만, 종속성(표준 라이브러리 포함)에서 클래스/멤버 링크를 해결하지 않아 문서 품질과 사용자 경험을 저하시킬 수도 있습니다.

참고: 가져온 파일을 로컬에 캐시하고 이를 로컬 경로로 Dokka에 제공할 수 있습니다. externalDocumentationLinks 섹션을 참조하십시오.

기본값: false

includes

모듈 및 패키지 문서를 포함하는 Markdown 파일 목록입니다.

지정된 파일의 내용은 파싱되어 모듈 및 패키지 설명으로 문서에 포함됩니다.

이것은 패키지별로 구성할 수 있습니다.

sourceSets

Kotlin 소스 세트의 개별 및 추가 구성입니다.

가능한 옵션 목록은 소스 세트 구성을 참조하십시오.

sourceLinks

모든 소스 세트에 적용되는 소스 링크의 전역 구성입니다.

가능한 옵션 목록은 소스 링크 구성을 참조하십시오.

perPackageOptions

소스 세트에 관계없이 일치하는 패키지의 전역 구성입니다.

가능한 옵션 목록은 패키지별 구성을 참조하십시오.

externalDocumentationLinks

사용되는 소스 세트에 관계없이 외부 문서 링크의 전역 구성입니다.

가능한 옵션 목록은 외부 문서 링크 구성을 참조하십시오.

pluginsClasspath

Dokka 플러그인과 해당 종속성을 포함하는 JAR 파일 목록입니다.

소스 세트 구성

Kotlin 소스 세트를 구성하는 방법:

json
{
  "sourceSets": [
    {
      "displayName": "jvm",
      "sourceSetID": {
        "scopeId": "moduleName",
        "sourceSetName": "main"
      },
      "dependentSourceSets": [
        {
          "scopeId": "dependentSourceSetScopeId",
          "sourceSetName": "dependentSourceSetName"
        }
      ],
      "documentedVisibilities": ["PUBLIC", "PRIVATE", "PROTECTED", "INTERNAL", "PACKAGE"],
      "reportUndocumented": false,
      "skipEmptyPackages": true,
      "skipDeprecated": false,
      "jdkVersion": 8,
      "languageVersion": "1.7",
      "apiVersion": "1.7",
      "noStdlibLink": false,
      "noJdkLink": false,
      "includes": [
        "module.md"
      ],
      "analysisPlatform": "jvm",
      "sourceRoots": [
        "/home/ignat/IdeaProjects/dokka-debug-mvn/src/main/kotlin"
      ],
      "classpath": [
        "libs/kotlin-stdlib-2.2.10.jar",
        "libs/kotlin-stdlib-common-2.2.10.jar"
      ],
      "samples": [
        "samples/basic.kt"
      ],
      "suppressedFiles": [
        "src/main/kotlin/org/jetbrains/dokka/Suppressed.kt"
      ],
      "sourceLinks":  [
        { "_comment": "Options are described in a separate section" }
      ],
      "perPackageOptions": [
        { "_comment": "Options are described in a separate section" }
      ],
      "externalDocumentationLinks":  [
        { "_comment": "Options are described in a separate section" }
      ]
    }
  ]
}
displayName

이 소스 세트를 참조하는 데 사용되는 표시 이름입니다.

이 이름은 외부(예: 문서 리더에게 소스 세트 이름이 표시됨) 및 내부(예: reportUndocumented의 로깅 메시지) 모두에 사용됩니다.

더 나은 대안이 없는 경우 플랫폼 이름을 사용할 수 있습니다.

sourceSetID

소스 세트의 기술적 ID입니다.

documentedVisibilities

문서화되어야 하는 가시성 변경자(visibility modifier) 집합입니다.

이것은 protected/internal/private 선언을 문서화하거나, public 선언을 제외하고 내부 API만 문서화하려는 경우에 사용할 수 있습니다.

이것은 패키지별로 구성할 수 있습니다.

가능한 값:

  • PUBLIC
  • PRIVATE
  • PROTECTED
  • INTERNAL
  • PACKAGE

기본값: PUBLIC

reportUndocumented

documentedVisibilities 및 다른 필터에 의해 필터링된 후 KDoc이 없는 보이는(visible) 문서화되지 않은 선언에 대해 경고를 발생시킬지 여부입니다.

이 설정은 failOnWarning과 잘 작동합니다.

이것은 패키지별로 구성할 수 있습니다.

기본값: false

skipEmptyPackages

다양한 필터가 적용된 후 보이는(visible) 선언을 포함하지 않는 패키지를 건너뛸지 여부입니다.

예를 들어, skipDeprecatedtrue로 설정되어 있고 패키지에 더 이상 사용되지 않는 선언만 포함된 경우, 해당 패키지는 비어 있다고 간주됩니다.

CLI 러너의 기본값은 false입니다.

skipDeprecated

@Deprecated로 주석이 달린 선언을 문서화할지 여부입니다.

이것은 패키지별로 구성할 수 있습니다.

기본값: false

jdkVersion

Java 타입에 대한 외부 문서 링크를 생성할 때 사용할 JDK 버전입니다.

예를 들어, 일부 public 선언 시그니처에서 java.util.UUID를 사용하고 이 옵션이 8로 설정된 경우, Dokka는 해당 타입에 대한 JDK 8 Javadocs 외부 문서 링크를 생성합니다.

languageVersion

분석 및 @sample 환경 설정을 위해 사용되는 Kotlin 언어 버전입니다.

apiVersion

분석 및 @sample 환경 설정을 위해 사용되는 Kotlin API 버전입니다.

noStdlibLink

Kotlin 표준 라이브러리의 API 참조 문서로 연결되는 외부 문서 링크를 생성할지 여부입니다.

참고: noStdLibLinkfalse로 설정된 경우 링크가 생성됩니다.

기본값: false

noJdkLink

JDK Javadoc에 대한 외부 문서 링크를 생성할지 여부입니다.

JDK Javadoc의 버전은 jdkVersion 옵션에 의해 결정됩니다.

참고: noJdkLinkfalse로 설정된 경우 링크가 생성됩니다.

기본값: false

includes

모듈 및 패키지 문서를 포함하는 Markdown 파일 목록입니다.

지정된 파일의 내용은 파싱되어 모듈 및 패키지 설명으로 문서에 포함됩니다.

analysisPlatform

코드 분석 및 @sample 환경 설정을 위해 사용될 플랫폼입니다.

가능한 값:

  • jvm
  • common
  • js
  • native
sourceRoots

분석 및 문서화할 소스 코드 루트입니다. 허용되는 입력은 디렉토리 및 개별 .kt / .java 파일입니다.

classpath

분석 및 대화형 샘플을 위한 클래스패스입니다.

이는 종속성에서 오는 일부 타입이 자동으로 해결/인식되지 않는 경우에 유용합니다.

이 옵션은 .jar.klib 파일 모두를 허용합니다.

samples

@sample KDoc 태그를 통해 참조되는 샘플 함수를 포함하는 디렉토리 또는 파일 목록입니다.

suppressedFiles

문서 생성 시 억제할 파일입니다.

sourceLinks

이 소스 세트에만 적용되는 소스 링크 매개변수 집합입니다.

가능한 옵션 목록은 소스 링크 구성을 참조하십시오.

perPackageOptions

이 소스 세트 내에서 일치하는 패키지에 특정한 매개변수 집합입니다.

가능한 옵션 목록은 패키지별 구성을 참조하십시오.

externalDocumentationLinks

이 소스 세트에만 적용되는 외부 문서 링크 매개변수 집합입니다.

가능한 옵션 목록은 외부 문서 링크 구성을 참조하십시오.

소스 링크 구성

sourceLinks 구성 블록을 사용하면 각 시그니처에 특정 줄 번호와 함께 remoteUrl로 연결되는 source 링크를 추가할 수 있습니다. (줄 번호는 remoteLineSuffix를 설정하여 구성할 수 있습니다.)

이는 독자가 각 선언의 소스 코드를 찾는 데 도움이 됩니다.

예를 들어, kotlinx.coroutinescount() 함수 문서를 참조하십시오.

모든 소스 세트에 대해 소스 링크를 동시에 또는 개별적으로 구성할 수 있습니다:

json
{
  "sourceLinks": [
    {
      "localDirectory": "src/main/kotlin",
      "remoteUrl": "https://github.com/Kotlin/dokka/tree/master/src/main/kotlin",
      "remoteLineSuffix": "#L"
    }
  ]
}
localDirectory

로컬 소스 디렉토리의 경로입니다.

remoteUrl

문서 리더가 접근할 수 있는 소스 코드 호스팅 서비스(예: GitHub, GitLab, Bitbucket 등)의 URL입니다. 이 URL은 선언의 소스 코드 링크를 생성하는 데 사용됩니다.

remoteLineSuffix

URL에 소스 코드 줄 번호를 추가하는 데 사용되는 접미사입니다. 이는 독자가 파일뿐만 아니라 선언의 특정 줄 번호로 이동하는 데 도움이 됩니다.

숫자 자체는 지정된 접미사에 추가됩니다. 예를 들어, 이 옵션이 #L로 설정되고 줄 번호가 10인 경우, 결과 URL 접미사는 #L10이 됩니다.

인기 있는 서비스에서 사용되는 접미사:

  • GitHub: #L
  • GitLab: #L
  • Bitbucket: #lines-

기본값: 비어 있음 (접미사 없음)

패키지별 구성

perPackageOptions 구성 블록은 matchingRegex와 일치하는 특정 패키지에 대한 일부 옵션을 설정할 수 있도록 합니다.

모든 소스 세트에 대해 패키지 구성을 동시에 또는 개별적으로 추가할 수 있습니다:

json
{
  "perPackageOptions": [
    {
      "matchingRegex": ".*internal.*",
      "suppress": false,
      "skipDeprecated": false,
      "reportUndocumented": false,
      "documentedVisibilities": ["PUBLIC", "PRIVATE", "PROTECTED", "INTERNAL", "PACKAGE"]
    }
  ]
}
matchingRegex

패키지를 일치시키는 데 사용되는 정규 표현식입니다.

suppress

문서 생성 시 이 패키지를 건너뛸지 여부입니다.

기본값: false

skipDeprecated

@Deprecated로 주석이 달린 선언을 문서화할지 여부입니다.

이것은 프로젝트/모듈 수준에서 설정할 수 있습니다.

기본값: false

reportUndocumented

documentedVisibilities 및 다른 필터에 의해 필터링된 후 KDoc이 없는 보이는(visible) 문서화되지 않은 선언에 대해 경고를 발생시킬지 여부입니다.

이 설정은 failOnWarning과 잘 작동합니다.

이것은 소스 세트 수준에서 구성할 수 있습니다.

기본값: false

documentedVisibilities

문서화되어야 하는 가시성 변경자(visibility modifier) 집합입니다.

이것은 이 패키지 내에서 protected/internal/private 선언을 문서화하거나, public 선언을 제외하고 내부 API만 문서화하려는 경우에 사용할 수 있습니다.

소스 세트 수준에서 구성할 수 있습니다.

기본값: PUBLIC

외부 문서 링크 구성

externalDocumentationLinks 블록을 사용하면 종속성의 외부 호스팅 문서로 연결되는 링크를 생성할 수 있습니다.

예를 들어, kotlinx.serialization의 타입을 사용하는 경우, 기본적으로 문서에서 클릭할 수 없거나 마치 확인되지 않은 것처럼 보입니다. 하지만 kotlinx.serialization의 API 참조 문서는 Dokka에 의해 빌드되고 kotlinlang.org에 게시되므로, 해당 라이브러리의 타입에 대한 외부 문서 링크를 구성할 수 있습니다. 이를 통해 Dokka가 라이브러리의 타입에 대한 링크를 생성하여 성공적으로 확인하고 클릭할 수 있게 됩니다.

모든 소스 세트에 대해 외부 문서 링크를 동시에 또는 개별적으로 구성할 수 있습니다:

json
{
  "externalDocumentationLinks": [
    {
      "url": "https://kotlinlang.org/api/kotlinx.serialization/",
      "packageListUrl": "https://kotlinlang.org/api/kotlinx.serialization/package-list"
    }
  ]
}
url

링크할 문서의 루트 URL입니다. 후행 슬래시(trailing slash)가 반드시 포함되어야 합니다.

Dokka는 주어진 URL에 대한 package-list를 자동으로 찾아 선언들을 함께 연결하기 위해 최선을 다합니다.

자동 해결이 실패하거나 로컬에 캐시된 파일을 대신 사용하려는 경우, packageListUrl 옵션을 설정하는 것을 고려하십시오.

packageListUrl

package-list의 정확한 위치입니다. 이는 Dokka가 자동으로 해결하는 방식에 의존하는 대안입니다.

패키지 목록에는 모듈 및 패키지 이름과 같은 문서 및 프로젝트 자체에 대한 정보가 포함됩니다.

이것은 네트워크 호출을 피하기 위해 로컬에 캐시된 파일일 수도 있습니다.

전체 구성

아래에서 모든 가능한 구성 옵션이 동시에 적용된 것을 볼 수 있습니다.

json
{
  "moduleName": "Dokka Example",
  "moduleVersion": null,
  "outputDir": "./build/dokka/html",
  "failOnWarning": false,
  "suppressObviousFunctions": true,
  "suppressInheritedMembers": false,
  "offlineMode": false,
  "sourceLinks": [
    {
      "localDirectory": "src/main/kotlin",
      "remoteUrl": "https://github.com/Kotlin/dokka/tree/master/src/main/kotlin",
      "remoteLineSuffix": "#L"
    }
  ],
  "externalDocumentationLinks": [
    {
      "url": "https://docs.oracle.com/javase/8/docs/api/",
      "packageListUrl": "https://docs.oracle.com/javase/8/docs/api/package-list"
    },
    {
      "url": "https://kotlinlang.org/api/core/kotlin-stdlib/",
      "packageListUrl": "https://kotlinlang.org/api/core/kotlin-stdlib/package-list"
    }
  ],
  "perPackageOptions": [
    {
      "matchingRegex": ".*internal.*",
      "suppress": false,
      "reportUndocumented": false,
      "skipDeprecated": false,
      "documentedVisibilities": ["PUBLIC", "PRIVATE", "PROTECTED", "INTERNAL", "PACKAGE"]
    }
  ],
  "sourceSets": [
    {
      "displayName": "jvm",
      "sourceSetID": {
        "scopeId": "moduleName",
        "sourceSetName": "main"
      },
      "dependentSourceSets": [
        {
          "scopeId": "dependentSourceSetScopeId",
          "sourceSetName": "dependentSourceSetName"
        }
      ],
      "documentedVisibilities": ["PUBLIC", "PRIVATE", "PROTECTED", "INTERNAL", "PACKAGE"],
      "reportUndocumented": false,
      "skipEmptyPackages": true,
      "skipDeprecated": false,
      "jdkVersion": 8,
      "languageVersion": "1.7",
      "apiVersion": "1.7",
      "noStdlibLink": false,
      "noJdkLink": false,
      "includes": [
        "module.md"
      ],
      "analysisPlatform": "jvm",
      "sourceRoots": [
        "/home/ignat/IdeaProjects/dokka-debug-mvn/src/main/kotlin"
      ],
      "classpath": [
        "libs/kotlin-stdlib-2.2.10.jar",
        "libs/kotlin-stdlib-common-2.2.10.jar"
      ],
      "samples": [
        "samples/basic.kt"
      ],
      "suppressedFiles": [
        "src/main/kotlin/org/jetbrains/dokka/Suppressed.kt"
      ],
      "sourceLinks": [
        {
          "localDirectory": "src/main/kotlin",
          "remoteUrl": "https://github.com/Kotlin/dokka/tree/master/src/main/kotlin",
          "remoteLineSuffix": "#L"
        }
      ],
      "externalDocumentationLinks": [
        {
          "url": "https://docs.oracle.com/javase/8/docs/api/",
          "packageListUrl": "https://docs.oracle.com/javase/8/docs/api/package-list"
        },
        {
          "url": "https://kotlinlang.org/api/core/kotlin-stdlib/",
          "packageListUrl": "https://kotlinlang.org/api/core/kotlin-stdlib/package-list"
        }
      ],
      "perPackageOptions": [
        {
          "matchingRegex": ".*internal.*",
          "suppress": false,
          "reportUndocumented": false,
          "skipDeprecated": false,
          "documentedVisibilities": ["PUBLIC", "PRIVATE", "PROTECTED", "INTERNAL", "PACKAGE"]
        }
      ]
    }
  ],
  "pluginsClasspath": [
    "./dokka-base-2.0.0.jar",
    "./kotlinx-html-jvm-0.8.0.jar",
    "./analysis-kotlin-descriptors-2.0.0.jar",
    "./freemarker-2.3.31.jar"
  ],
  "pluginsConfiguration": [
    {
      "fqPluginName": "org.jetbrains.dokka.base.DokkaBase",
      "serializationFormat": "JSON",
      "values": "{\"separateInheritedMembers\":false,\"footerMessage\":\"© 2021 pretty good Copyright\"}"
    }
  ],
  "includes": [
    "module.md"
  ]
}