Configure a Maven project
To build a Kotlin project with Maven, you need to add the Kotlin Maven plugin to your pom.xml build file, declare repositories, and configure the project's dependencies.
Enable and configure the plugin
The kotlin-maven-plugin compiles Kotlin sources and modules. Currently, only Maven v3 is supported.
To apply the Kotlin Maven plugin, update your pom.xml build file as follows:
In the
<properties>section, define the version of Kotlin you want to use in thekotlin.versionproperty:<properties> <kotlin.version>2.3.20</kotlin.version> </properties>In the
<build><plugins>section, add the Kotlin Maven plugin:<build> <plugins> <plugin> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-maven-plugin</artifactId> <version>${kotlin.version}</version> </plugin> </plugins> </build>(Optional) You can also enable the
extensionsoption to simplify project configuration. To do so, update the Kotlin Maven plugin section in your `pom.xml` file:<plugins> <plugin> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-maven-plugin</artifactId> <version>${kotlin.version}</version> <extensions>true</extensions> <!-- Add this extension --> </plugin> </plugins>The
extensionsoption in the Kotlin Maven plugin automatically:Registers
src/main/kotlinandsrc/test/kotlindirectories as source roots if they already exist but are not specified in the plugin configuration.Adds the
kotlin-stdlibdependency if it's not already defined in the project.
Use JDK 17
To use JDK 17, in your .mvn/jvm.config file, add:
Declare repositories
By default, the mavenCentral repository is available for all Maven projects. To access artifacts in other repositories, specify a custom ID for the repository name and its URL in the <repositories> section:
Set dependencies
To add a dependency on a library, include it in the <dependencies> section:
Dependency on the standard library
Kotlin has an extensive standard library that you can use in your applications. You can add the standard library dependency manually or enable the extensions option to set it up automatically if it's missing.
Manual configuration
To manually add the Kotlin's standard library to your project, update the dependencies section in your pom.xml file with the following:
Automatic setup
You can avoid manual configuration using the extensions option provided by the Kotlin Maven plugin. It automatically adds the kotlin-stdlib dependency if it's not defined in the project, for example, when you create a new Kotlin Maven project or introduce Kotlin to your existing Java Maven project.
You can also opt out from the automatic addition of the standard library. For that, add the following to the <properties> section:
Note that this property disables all simplified setup features, including the registration of source root paths.
Dependencies on test libraries
If your project uses Kotlin reflection or testing frameworks, add the relevant dependencies. Use kotlin-reflect for the reflection library, and kotlin-test and kotlin-test-junit5 for testing libraries:
Dependency on a kotlinx library
For kotlinx libraries, you can either add the base artifact name or the name with a -jvm suffix. Refer to the library's README file on klibs.io.
For example, to add a dependency on kotlinx.coroutines library:
To add a dependency on the kotlinx-datetime library:
Use BOM dependency mechanism
To use a Kotlin Bill of Materials (BOM), add a dependency on kotlin-bom: