依存関係の追加
サーバーの依存関係の追加
このトピックでは、既存のGradle/MavenプロジェクトにKtorサーバーに必要な依存関係を追加する方法を説明します。
リポジトリの設定
Ktorの依存関係を追加する前に、このプロジェクトのリポジトリを設定する必要があります。
プロダクション
KtorのプロダクションリリースはMaven Centralリポジトリで利用可能です。 ビルドスクリプトで以下のようにこのリポジトリを宣言できます。
KotlinGroovyNOTE
プロジェクトはSuper POMからCentralリポジトリを継承しているため、pom.xmlファイルにMaven Centralリポジトリを追加する必要はありません。
早期アクセスプログラム (EAP)
KtorのEAPバージョンにアクセスするには、Spaceリポジトリを参照する必要があります。
KotlinGroovyXMLKtorのEAPにはKotlin devリポジトリが必要になる場合があることに注意してください。
KotlinGroovyXML
依存関係の追加
コアの依存関係
すべてのKtorアプリケーションには、少なくとも以下の依存関係が必要です。
ktor-server-core: Ktorのコア機能が含まれています。- エンジン(例:ネットワークリクエストを処理するエンジンについて学びます。
ktor-server-netty)の依存関係。
プラットフォームごとに、Ktorは-jvmなどのサフィックスを持つプラットフォーム固有のアーティファクトを提供しています(例: ktor-server-core-jvm、ktor-server-netty-jvm)。 Gradleは指定されたプラットフォームに適したアーティファクトを解決しますが、Mavenはこの機能をサポートしていないことに注意してください。 つまり、Mavenの場合はプラットフォーム固有のサフィックスを手動で追加する必要があります。 基本的なKtorアプリケーションのdependenciesブロックは以下のようになります。
ロギングの依存関係
Ktorは、さまざまなロギングフレームワーク(例: LogbackやLog4j)のファサードとしてSLF4J APIを使用し、アプリケーションイベントをログに記録できるようにします。 必要なアーティファクトの追加方法については、ロガーの依存関係の追加を参照してください。
プラグインの依存関係
Ktorの機能を拡張する
Ktorバージョンの整合性の確保
Ktor Gradleプラグインの使用
Ktor Gradleプラグインを適用すると、暗黙的にKtor BOMの依存関係が追加され、すべてのKtorの依存関係が同じバージョンであることを保証できます。 この場合、Ktorアーティファクトに依存する際にバージョンを指定する必要がなくなります。
アプリケーション実行用のエントリポイントの作成
Gradle/Mavenを使用したKtorサーバーの
embeddedServerを使用する場合、メインクラスを次のように指定します。
KotlinGroovyXMLEngineMainを使用する場合、それをメインクラスとして設定する必要があります。 Nettyの場合、以下のようになります。
KotlinGroovyXML
NOTE
アプリケーションをFat JARとしてパッケージ化する場合は、対応するプラグインを設定する際にサーバーの作成方法も考慮する必要があります。 詳細については、以下のトピックを参照してください。
- Ktor Gradleプラグインを使用したFat JARの作成Ktor Gradleプラグインを使用して、実行可能なFat JARを作成し実行する方法を学びます。
- Maven Assemblyプラグインを使用したFat JARの作成サンプルプロジェクト: tutorial-server-get-started-maven
