0Pricing
Kotlin Academy · レッスン

依存関係とプラグイン

ビルドを設定します

「依存関係とプラグイン」はCoddyKit上の無料Kotlin Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはKotlin Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Kotlin Academyコースには全4レッスンが含まれています。

依存関係の構成

Gradleは依存関係を構成ごとにグループ化します。構成によって、依存関係をいつ、どこで利用できるかが決まります。

  • implementation — コンパイル時と実行時に使用できますが、利用者には公開されません
  • api — 利用者にも公開されます
  • testImplementation — テストでのみ使用できます

implementationとapiの比較

implementationは依存するモジュールから依存関係を隠すため、ビルドのパフォーマンスとカプセル化が向上します。依存関係が公開型に現れる場合にのみ、apiを使用してください。

dependencies {
    api("com.squareup.okio:okio:3.9.0")          // leaks into public API
    implementation("com.google.code.gson:gson:2.11.0") // internal only
}

compileOnlyとruntimeOnly

依存関係の中には、1つのフェーズでのみ必要になるものがあります。

  • compileOnly — コンパイル時に存在しますが、パッケージには含まれません(アノテーションなど)
  • runtimeOnly — 実行時にのみ存在します(JDBCドライバーなど)
dependencies {
    compileOnly("org.projectlombok:lombok:1.18.32")
    runtimeOnly("org.postgresql:postgresql:42.7.3")
}

依存関係の座標

座標はgroup:name:versionの形式です。明確さを重視する場合は、個別に分けて指定できます。

dependencies {
    implementation(group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version = "1.8.1")
}

プロジェクトの依存関係

マルチモジュールビルドでは、あるモジュールが別のモジュールに project(...) で依存します。

dependencies {
    implementation(project(":core"))
}

コアプラグインの適用

組み込みプラグインにはバージョンの指定は必要ありません。コミュニティプラグインは ID とバージョンを指定して適用します。

plugins {
    id("java-library")
    kotlin("jvm") version "2.0.0"
    id("com.github.johnrengelman.shadow") version "8.1.1"
}

ポータルからのプラグイン

ほとんどのプラグインは、plugins { } ブロックで ID を指定して適用すると、Gradle Plugin Portal から自動的に解決されます。

plugins {
    id("org.jetbrains.kotlin.plugin.serialization") version "2.0.0"
}

推移的依存関係の除外

別のライブラリに伴って追加される、不要な推移的依存関係を除外できます。

dependencies {
    implementation("com.example:lib:1.0") {
        exclude(group = "org.slf4j", module = "slf4j-api")
    }
}

バージョンの強制

解決戦略を使って特定のバージョンを強制し、競合を解決します。

configurations.all {
    resolutionStrategy {
        force("com.google.guava:guava:33.2.1-jre")
    }
}

依存関係ツリーの確認

dependencies タスクを使うと、解決された依存関係グラフを確認して競合を診断できます。

// ./gradlew dependencies
// ./gradlew app:dependencies --configuration runtimeClasspath

適切なコンフィグレーションの選択

原則として implementation を使います。api は必要最小限にし、テストには testImplementation を、フェーズ固有の用途には compileOnly/runtimeOnly の組み合わせを使います。

クイックチェック

ロギングライブラリをモジュール内でのみ使用し、公開型に一度も現れない場合、最適なコンフィグレーションはどれですか。

まとめ

ビルドを構成しました。

  • コンフィグレーション: implementation、api、compileOnly、runtimeOnly、testImplementation
  • ID とバージョンを指定するか、コアプラグインとしてプラグインを適用する
  • バージョンを除外・強制し、依存関係ツリーを確認する

次はカスタムタスクの作成です。

よくある質問

「依存関係とプラグイン」レッスンは無料ですか?

はい。「依存関係とプラグイン」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Kotlin Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Kotlin Academyコースには全4レッスンが含まれています。

「依存関係とプラグイン」で何を学びますか?

ビルドを設定します ブラウザで直接実行するハンズオンコードでKotlin Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Kotlin Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのKotlin Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「依存関係とプラグイン」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このKotlin Academyレッスンでコードを書いて実行できますか?

はい。すべてのKotlin Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Gradle Kotlin DSL
  2. 依存関係とプラグイン
  3. カスタムタスク
  4. バージョンカタログ
← Kotlin Academyに戻る