Ktor 2.2.4 Help

Gradle Application plugin

The Gradle Application plugin provides the ability to package applications, including code dependencies and generated start scripts. In this topic, we'll show you how to package and run a Ktor application.

Apply the Application plugin and configure the main class

To package an application, you need to apply the Application plugin first:

  1. Open the build.gradle(.kts) file of your project.

  2. Make sure that the file contains the following code:

    plugins { application } application { mainClass.set("io.ktor.server.netty.EngineMain") }
    plugins { id 'application' } application { mainClass = 'io.ktor.server.netty.EngineMain' }
    • The Application plugin is applied inside the plugins block.

    • The mainClass property is used to configure the main class of the application. Note that the application main class depends on the way used to create a server. In the example above, the main class depends on the used engine and looks as follows: io.ktor.server.netty.EngineMain.

Package the application

The Application plugin provides various ways for packaging the application, for example, the installDist task installs the application with all runtime dependencies and start scripts. To create full distribution archives, you can use the distZip and distTar tasks.

In this topic, we'll use installDist:

  1. Open a terminal.

  2. Run the installDist task in one of the following ways depending on your operating system:

    ./gradlew installDist
    gradlew.bat installDist

    Gradle will create an image of the application in the build/install/<project_name> folder.

Run the application

To run the packaged application:

  1. Go to the build/install/<project_name>/bin folder in a terminal.

  2. Depending on your operating system, run the <project_name> or <project_name>.bat executable, for example:

  3. Wait until the following message is shown:

    [main] INFO Application - Responding at

    Open the link in a browser to see a running application:

    Ktor app in a browser
Last modified: 24 August 2022