Skip to content

添加服务器依赖项

在本主题中,我们将向您展示如何将 Ktor 服务器所需的依赖项添加到现有 Gradle/Maven 项目中。

配置版本库

在添加 Ktor 依赖项之前,您需要为该项目配置版本库:

  • 生产版本

    Ktor 的生产版本在 Maven 中央版本库中提供。 您可以在构建脚本中声明此版本库,如下所示:

    Kotlin
    Groovy

    NOTE

    您无需在 pom.xml 文件中添加 Maven 中央版本库,因为您的项目继承自 Super POM 中的中央版本库。

  • 抢先体验计划 (EAP)

    要访问 Ktor 的 EAP 版本,您需要引用 Space 版本库

    Kotlin
    Groovy
    XML

    请注意,Ktor EAP 可能需要 Kotlin 开发版本库

    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 使用 SLF4J API 作为各种日志框架(例如,Logback 或 Log4j)的门面,并允许您记录应用程序事件。 要了解如何添加所需的构件,请参见 添加日志器依赖项

插件依赖项

插件
插件提供常见功能,例如序列化、内容编码、压缩等。
扩展 Ktor 功能可能需要额外的依赖项。 您可以从相应主题中了解更多信息。

确保 Ktor 版本一致性

使用 Ktor Gradle 插件

应用 Ktor Gradle 插件 会隐式添加 Ktor BOM 依赖项,并允许您确保所有 Ktor 依赖项都处于相同版本。 在这种情况下,在依赖 Ktor 构件时,您不再需要指定版本:

Kotlin
Groovy

使用已发布的版本目录

您还可以通过使用已发布的版本目录集中管理 Ktor 依赖项声明。 这种方法提供以下优势:

  • 无需在您自己的目录中手动声明 Ktor 版本。

  • 将每个 Ktor 模块暴露在单一命名空间下。

要在 settings.gradle.kts 中声明目录,请使用您选择的名称创建一个版本目录:

kotlin

然后,您可以通过引用目录名称在模块的 build.gradle.kts 中添加依赖项:

kotlin

创建运行应用程序的入口点

运行
了解如何运行服务器 Ktor 应用程序。
Ktor 服务器时,使用 Gradle/Maven 取决于
创建服务器
了解如何根据应用程序部署需求创建服务器。
的方式。 您可以通过以下方式之一指定应用程序主类:

  • 如果您使用 embeddedServer,请按如下方式指定主类:

    Kotlin
    Groovy
    XML
  • 如果您使用 EngineMain,您需要将其配置为主类。 对于 Netty,它将如下所示:

    Kotlin
    Groovy
    XML

NOTE

如果您要将应用程序打包为 Fat JAR,您在配置相应插件时,还需要考虑创建服务器的方式。 从以下主题了解更多信息: