Skip to content

CLI

何らかの理由で GradleMaven などのビルドツールを使用できない場合、Dokka にはドキュメント生成用のコマンドライン(CLI)ランナーが用意されています。

比較すると、Dokka の Gradle プラグインと同等、あるいはそれ以上の機能を備えています。ただし、特にマルチプラットフォームやマルチモジュールの環境では自動設定が行われないため、セットアップはかなり難しくなります。

はじめに

CLI ランナーは、個別の実行可能アーティファクトとして Maven Central に公開されています。

Maven Central で見つけるか、直接ダウンロード することができます。

dokka-cli-2.1.0.jar ファイルをコンピュータに保存した状態で、-help オプションを付けて実行すると、利用可能なすべての設定オプションとその説明を確認できます。

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

これは -sourceSet などの一部のネストされたオプションでも機能します。

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

ドキュメントの生成

前提条件

依存関係を管理するビルドツールがないため、依存関係の .jar ファイルを自分で用意する必要があります。

以下は、どの出力形式でも必要となる依存関係のリストです。

グループアーティファクトバージョンリンク
org.jetbrains.dokkadokka-base2.1.0download
org.jetbrains.dokkaanalysis-kotlin-descriptors2.1.0download

以下は、HTML 出力形式で必要となる追加の依存関係です。

グループアーティファクトバージョンリンク
org.jetbrains.kotlinxkotlinx-html-jvm0.8.0download
org.freemarkerfreemarker2.3.31download

コマンドラインオプションによる実行

コマンドラインオプションを渡して CLI ランナーを設定できます。

最低限、以下のオプションを指定する必要があります。

  • -pluginsClasspath - ダウンロードした依存関係への絶対パスまたは相対パスのリスト。セミコロン ; で区切ります。
  • -sourceSet - ドキュメントを生成するソースコードへの絶対パス。
  • -outputDir - ドキュメント出力ディレクトリの絶対パスまたは相対パス。
Bash
java -jar dokka-cli-2.1.0.jar \
     -pluginsClasspath "./dokka-base-2.1.0.jar;./analysis-kotlin-descriptors-2.1.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 設定による実行

JSON を使用して CLI ランナーを設定することも可能です。この場合、最初で唯一の引数として JSON 設定ファイルへの絶対パスまたは相対パスを指定する必要があります。他のすべての設定オプションは、そのファイルから解析されます。

Bash
java -jar dokka-cli-2.1.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.1.0.jar",
    "./kotlinx-html-jvm-0.8.0.jar",
    "./analysis-kotlin-descriptors-2.1.0.jar",
    "./freemarker-2.3.31.jar"
  ]
}

詳細は JSON 設定オプションを参照してください。

その他の出力形式

デフォルトでは、dokka-base アーティファクトには HTML 出力形式のみが含まれています。

他のすべての出力形式は Dokka プラグインとして実装されています。それらを使用するには、プラグインのクラスパス(plugins classpath)に含める必要があります。

例えば、実験的な GFM 出力形式でドキュメントを生成したい場合は、gfm-plugin の JAR(ダウンロード)をダウンロードし、pluginsClasspath 設定オプションに渡す必要があります。

コマンドラインオプション経由:

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

JSON 設定経由:

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

pluginsClasspath に GFM プラグインを渡すと、CLI ランナーは GFM 出力形式でドキュメントを生成します。

詳細については、GFM および Javadoc のページを参照してください。

コマンドラインオプション

可能なすべてのコマンドラインオプションのリストと詳細な説明を表示するには、以下を実行してください。

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

簡潔なまとめ:

オプション説明
moduleNameプロジェクト/モジュールの名前。
moduleVersionドキュメント化されるバージョン。
outputDir出力ディレクトリのパス。デフォルトは ./dokka
sourceSetDokka ソースセットの設定。ネストされた設定オプションを含みます。
pluginsConfigurationDokka プラグインの設定。
pluginsClasspathDokka プラグインとその依存関係を含む JAR のリスト。セミコロンで区切られた複数のパスを受け入れます。
offlineModeネットワーク経由でリモートファイル/リンクを解決するかどうか。
failOnWarningDokka が警告またはエラーを出力した場合にドキュメント生成を失敗させるかどうか。
delayTemplateSubstitution一部の要素の置換を遅らせるかどうか。マルチモジュールプロジェクトのインクリメンタルビルドで使用されます。
noSuppressObviousFunctionskotlin.Anyjava.lang.Object から継承されたものなど、明らかな関数(obvious functions)を抑制しないかどうか。
includesモジュールおよびパッケージのドキュメントを含む Markdown ファイル。セミコロンで区切られた複数の値を受け入れます。
suppressInheritedMembers指定されたクラスで明示的にオーバーライドされていない継承メンバーを抑制するかどうか。
globalPackageOptions"matchingRegex,-deprecated,-privateApi,+warnUndocumented,+suppress;+visibility:PUBLIC;..." 形式のパッケージ設定オプションのグローバルリスト。セミコロンで区切られた複数の値を受け入れます。
globalLinks{url}^{packageListUrl} 形式のグローバルな外部ドキュメントリンク。^^ で区切られた複数の値を受け入れます。
globalSrcLinkソースディレクトリとコード閲覧用 Web サービス間のグローバルなマッピング。セミコロンで区切られた複数のパスを受け入れます。
helpSourceSetネストされた -sourceSet 設定のヘルプを表示します。
loggingLevelロギングレベル。指定可能な値: DEBUG, PROGRESS, INFO, WARN, ERROR
help, h使用方法の情報を表示します。

ソースセットのオプション

ネストされた -sourceSet 設定のコマンドラインオプション一覧を表示するには、以下を実行してください。

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

簡潔なまとめ:

オプション説明
sourceSetNameソースセットの名前。
displayName内部および外部の両方で使用されるソースセットの表示名。
classpath解析およびインタラクティブなサンプルのためのクラスパス。セミコロンで区切られた複数のパスを受け入れます。
src解析およびドキュメント化されるソースコードのルート。セミコロンで区切られた複数のパスを受け入れます。
dependentSourceSetsmoduleName/sourceSetName 形式の依存ソースセットの名前。セミコロンで区切られた複数の値を受け入れます。
samplesサンプル関数を含むディレクトリまたはファイルのリスト。セミコロンで区切られた複数のパスを受け入れます。
includesモジュールおよびパッケージのドキュメントを含む Markdown ファイル。セミコロンで区切られた複数のパスを受け入れます。
documentedVisibilitiesドキュメント化される可視性。セミコロンで区切られた複数の値を受け入れます。指定可能な値: PUBLIC, PRIVATE, PROTECTED, INTERNAL, PACKAGE
reportUndocumentedドキュメント化されていない宣言を報告するかどうか。
noSkipEmptyPackages空のパッケージのページを作成するかどうか。
skipDeprecated非推奨(deprecated)の宣言をスキップするかどうか。
jdkVersionJDK の Javadoc へのリンクに使用する JDK のバージョン。
languageVersion解析とセットアップに使用される言語バージョン。
apiVersion解析とセットアップに使用される Kotlin API バージョン。
noStdlibLinkKotlin 標準ライブラリへのリンクを生成するかどうか。
noJdkLinkJDK の Javadoc へのリンクを生成するかどうか。
suppressedFiles抑制するファイルへのパス。セミコロンで区切られた複数のパスを受け入れます。
suppressAnnotatedWith指定されたアノテーションが付加された宣言を抑制するための、アノテーションの完全修飾名(FQN)。セミコロンで区切られた複数の値を受け入れます。
analysisPlatform解析のセットアップに使用されるプラットフォーム。
perPackageOptionsmatchingRegexp,-deprecated,-privateApi,+warnUndocumented,+suppress;... 形式のパッケージソースセット設定のリスト。セミコロンで区切られた複数の値を受け入れます。
externalDocumentationLinks{url}^{packageListUrl} 形式の外部ドキュメントリンク。^^ で区切られた複数の値を受け入れます。
srcLinkソースディレクトリとコード閲覧用 Web サービス間のマッピング。セミコロンで区切られた複数のパスを受け入れます。

JSON 設定

以下に、各設定セクションの例と詳細な説明を示します。ページの最後には、すべての設定オプションを適用した例もあります。

一般設定

json
{
  "moduleName": "Dokka Example",
  "moduleVersion": null,
  "outputDir": "./build/dokka/html",
  "failOnWarning": false,
  "suppressObviousFunctions": true,
  "suppressInheritedMembers": false,
  "offlineMode": false,
  "includes": [
    "module.md"
  ],
  "sourceLinks":  [
    { "_comment": "オプションについては別セクションで説明します" }
  ],
  "perPackageOptions": [
    { "_comment": "オプションについては別セクションで説明します" }
  ],
  "externalDocumentationLinks":  [
    { "_comment": "オプションについては別セクションで説明します" }
  ],
  "sourceSets": [
    { "_comment": "オプションについては別セクションで説明します" }
  ],
  "pluginsClasspath": [
    "./dokka-base-2.1.0.jar",
    "./kotlinx-html-jvm-0.8.0.jar",
    "./analysis-kotlin-descriptors-2.1.0.jar",
    "./freemarker-2.3.31.jar"
  ]
}
moduleName

モジュールを参照するために使用される表示名です。目次、ナビゲーション、ロギングなどで使用されます。

デフォルト: root

moduleVersion

モジュールのバージョンです。

デフォルト: 空

outputDirectory

出力形式に関係なく、ドキュメントが生成されるディレクトリです。

デフォルト: ./dokka

failOnWarning

Dokka が警告またはエラーを出力した場合にドキュメント生成を失敗させるかどうかを指定します。 プロセスは、すべてのエラーと警告が出力されるまで待機してから終了します。

この設定は reportUndocumented と組み合わせて使うと効果的です。

デフォルト: false

suppressObviousFunctions

明らかな関数(obvious functions)を抑制するかどうかを指定します。

関数が以下の場合、明らかな関数と見なされます:
  • kotlin.Any, Kotlin.Enum, java.lang.Object または java.lang.Enum から継承されたもの(equals, hashCode, toString など)。
  • 合成されたもの(コンパイラによって生成されたもの)で、ドキュメントがないもの(dataClass.componentNdataClass.copy など)。

デフォルト: true

suppressInheritedMembers

指定されたクラスで明示的にオーバーライドされていない継承メンバーを抑制するかどうかを指定します。

注意: これにより equals / hashCode / toString などの関数は抑制できますが、 dataClass.componentNdataClass.copy などの合成関数は抑制できません。 それらには suppressObviousFunctions を使用してください。

デフォルト: false

offlineMode

ネットワーク経由でリモートファイル/リンクを解決するかどうかを指定します。

これには、外部ドキュメントリンクの生成に使用される package-lists が含まれます。 例えば、標準ライブラリのクラスをクリック可能にするために使用されます。

これを 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.3.0.jar",
        "libs/kotlin-stdlib-common-2.3.0.jar"
      ],
      "samples": [
        "samples/basic.kt"
      ],
      "suppressedFiles": [
        "src/main/kotlin/org/jetbrains/dokka/Suppressed.kt"
      ],
      "sourceLinks":  [
        { "_comment": "オプションについては別セクションで説明します" }
      ],
      "perPackageOptions": [
        { "_comment": "オプションについては別セクションで説明します" }
      ],
      "externalDocumentationLinks":  [
        { "_comment": "オプションについては別セクションで説明します" }
      ]
    }
  ]
}
displayName

このソースセットを参照するために使用される表示名です。

この名前は、外部(ドキュメントの読者にソースセット名が表示されるなど)と内部(reportUndocumented のログメッセージなど)の両方で使用されます。

より適切な代替案がない場合は、プラットフォーム名を使用できます。

sourceSetID

ソースセットの技術的な ID です。

documentedVisibilities

ドキュメント化すべき可視性修飾子のセットです。

これは、protected/internal/private 宣言をドキュメント化したい場合や、 public 宣言を除外して内部 API のみをドキュメント化したい場合に使用できます。

これはパッケージ単位で設定することも可能です。

指定可能な値:

  • PUBLIC
  • PRIVATE
  • PROTECTED
  • INTERNAL
  • PACKAGE

デフォルト: PUBLIC

reportUndocumented

可視性があるもののドキュメント化されていない宣言(documentedVisibilities や他のフィルタでフィルタリングされた後に KDoc がない宣言)について警告を出すかどうかを指定します。

この設定は failOnWarning と組み合わせて使うと効果的です。

これはパッケージ単位で設定することも可能です。

デフォルト: false

skipEmptyPackages

各種フィルタを適用した後に、可視宣言が含まれていないパッケージをスキップするかどうかを指定します。

例えば、skipDeprecatedtrue に設定されており、パッケージに非推奨の宣言しか含まれていない場合、そのパッケージは空と見なされます。

CLI ランナーのデフォルトは false です。

skipDeprecated

@Deprecated アノテーションが付いた宣言をドキュメント化するかどうかを指定します。

これはパッケージ単位で設定することも可能です。

デフォルト: false

jdkVersion

Java 型の外部ドキュメントリンクを生成する際に使用する JDK バージョンです。

例えば、公開宣言のシグネチャで java.util.UUID を使用しており、このオプションが 8 に設定されている場合、 Dokka はそれに対して JDK 8 Javadoc への外部ドキュメントリンクを生成します。

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

ドキュメント生成時に抑制(除外)するファイルです。

suppressAnnotatedWith

指定されたアノテーションが付加された宣言を抑制するための、アノテーションの完全修飾名(FQN)のリストです。

これらのアノテーションのいずれかが付加された宣言は、生成されるドキュメントから除外されます。

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 がない宣言)について警告を出すかどうかを指定します。

この設定は failOnWarning と組み合わせて使うと効果的です。

これはソースセットレベルで設定することも可能です。

デフォルト: false

documentedVisibilities

ドキュメント化すべき可視性修飾子のセットです。

これは、このパッケージ内の 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 です。末尾には必ずスラッシュ(/)を含める必要があります

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,
  "suppressAnnotatedWith": [
    "com.example.SuppressMe"
  ],
  "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.3.0.jar",
        "libs/kotlin-stdlib-common-2.3.0.jar"
      ],
      "samples": [
        "samples/basic.kt"
      ],
      "suppressedFiles": [
        "src/main/kotlin/org/jetbrains/dokka/Suppressed.kt"
      ],
      "suppressAnnotatedWith": [
        "com.example.SuppressMe"
      ],
      "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.1.0.jar",
    "./kotlinx-html-jvm-0.8.0.jar",
    "./analysis-kotlin-descriptors-2.1.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"
  ]
}