Skip to content

依存関係の追加

サーバーの依存関係の追加

このトピックでは、既存のGradle/MavenプロジェクトにKtorサーバーに必要な依存関係を追加する方法を説明します。

リポジトリの設定

Ktorの依存関係を追加する前に、このプロジェクトのリポジトリを設定する必要があります。

  • プロダクション

    KtorのプロダクションリリースはMaven Centralリポジトリで利用可能です。 ビルドスクリプトで以下のようにこのリポジトリを宣言できます。

    Kotlin
    Groovy

    NOTE

    プロジェクトはSuper POMからCentralリポジトリを継承しているため、pom.xmlファイルにMaven Centralリポジトリを追加する必要はありません。

  • 早期アクセスプログラム (EAP)

    KtorのEAPバージョンにアクセスするには、Spaceリポジトリを参照する必要があります。

    Kotlin
    Groovy
    XML

    KtorのEAPにはKotlin devリポジトリが必要になる場合があることに注意してください。

    Kotlin
    Groovy
    XML

依存関係の追加

コアの依存関係

すべてのKtorアプリケーションには、少なくとも以下の依存関係が必要です。

  • ktor-server-core: Ktorのコア機能が含まれています。

  • エンジン
    ネットワークリクエストを処理するエンジンについて学びます。
    (例: ktor-server-netty)の依存関係。

プラットフォームごとに、Ktorは-jvmなどのサフィックスを持つプラットフォーム固有のアーティファクトを提供しています(例: ktor-server-core-jvmktor-server-netty-jvm)。 Gradleは指定されたプラットフォームに適したアーティファクトを解決しますが、Mavenはこの機能をサポートしていないことに注意してください。 つまり、Mavenの場合はプラットフォーム固有のサフィックスを手動で追加する必要があります。 基本的なKtorアプリケーションのdependenciesブロックは以下のようになります。

Kotlin
Groovy
XML

ロギングの依存関係

Ktorは、さまざまなロギングフレームワーク(例: LogbackやLog4j)のファサードとしてSLF4J APIを使用し、アプリケーションイベントをログに記録できるようにします。 必要なアーティファクトの追加方法については、ロガーの依存関係の追加を参照してください。

プラグインの依存関係

Ktorの機能を拡張する

プラグイン
プラグインは、シリアライゼーション、コンテンツエンコーディング、圧縮などの共通機能を提供します。
には、追加の依存関係が必要になる場合があります。 詳細については、対応するトピックを参照してください。

Ktorバージョンの整合性の確保

Ktor Gradleプラグインの使用

Ktor Gradleプラグインを適用すると、暗黙的にKtor BOMの依存関係が追加され、すべてのKtorの依存関係が同じバージョンであることを保証できます。 この場合、Ktorアーティファクトに依存する際にバージョンを指定する必要がなくなります。

Kotlin
Groovy

公開されたバージョンカタログの使用

公開されたバージョンカタログを使用して、Ktorの依存関係の宣言を一元化することもできます。 このアプローチには以下の利点があります。

  • 独自のカタログでKtorのバージョンを手動で宣言する必要がなくなります。
  • すべてのKtorモジュールを単一の名前空間で公開します。

カタログを宣言するには、settings.gradle.ktsで任意の名前のバージョンカタログを作成します。

kotlin

その後、カタログ名を参照してモジュールのbuild.gradle.ktsに依存関係を追加できます。

kotlin

アプリケーション実行用のエントリポイントの作成

Gradle/Mavenを使用したKtorサーバーの

実行
サーバーKtorアプリケーションを実行する方法を学びます。
は、
サーバーの作成
アプリケーションのデプロイニーズに応じてサーバーを作成する方法を学びます。
方法に依存します。 アプリケーションのメインクラスは、次のいずれかの方法で指定できます。

  • embeddedServerを使用する場合、メインクラスを次のように指定します。

    Kotlin
    Groovy
    XML
  • EngineMainを使用する場合、それをメインクラスとして設定する必要があります。 Nettyの場合、以下のようになります。

    Kotlin
    Groovy
    XML

NOTE

アプリケーションをFat JARとしてパッケージ化する場合は、対応するプラグインを設定する際にサーバーの作成方法も考慮する必要があります。 詳細については、以下のトピックを参照してください。