Spec-Zone.ru › Kotlin 2

Настройка репозиториев и зависимостей в проекте Maven

В проекте Kotlin Maven можно настроить, где Maven ищет артефакты помимо репозитория Maven Central по умолчанию, а также указать библиотеки, от которых зависит проект.

Объявление репозиториев

По умолчанию репозиторий mavenCentral доступен для всех проектов Maven. Чтобы получить доступ к артефактам в других репозиториях, укажите пользовательский идентификатор имени репозитория и его URL в разделе <repositories>:

<repositories>
    <repository>
        <id>spring-repo</id>
        <url>https://repo.spring.io/release</url>
    </repository>
</repositories>

Если вы объявите mavenLocal() репозиторием в проекте Gradle, при переключении между проектами Gradle и Maven могут возникнуть проблемы. Дополнительную информацию см. в разделе Объявление репозиториев.

Как правило, чтобы добавить зависимость от библиотеки, следует объявить новую запись <dependency> в разделе <dependencies>:

<dependencies>
    <dependency>
        <groupId>org.jetbrains.kotlinx</groupId>
        <artifactId>kotlinx-serialization-json</artifactId>
        <version>1.11.0</version>
    </dependency>
</dependencies>

Настройка зависимостей

Зависимость от стандартной библиотеки

В Kotlin есть обширная стандартная библиотека, которую можно использовать в приложениях. Зависимость от стандартной библиотеки можно добавить вручную или включить параметр <extensions>, чтобы добавить её автоматически, если она отсутствует.

Автоматическая настройка

Можно обойтись без ручной настройки, воспользовавшись параметром <extensions>, предоставляемым плагином Kotlin Maven. Он автоматически добавляет зависимость kotlin-stdlib, если она не указана в проекте. Например, когда вы создаёте новый проект Kotlin Maven или добавляете Kotlin в существующий проект Java Maven.

Если вы уже объявили зависимость kotlin-stdlib, например с другой версией, плагин Kotlin Maven с параметром <extensions> не перезапишет её.

Автоматическое добавление стандартной библиотеки также можно отключить. Для этого добавьте следующий код в раздел <properties>:

<project>
    <properties>
        <kotlin.smart.defaults.enabled>false</kotlin.smart.defaults.enabled>         
    </properties>
</project>

Это свойство отключает не только автоматическое добавление стандартной библиотеки, но и регистрацию путей к корневым каталогам исходного кода. На другие возможности <extensions> оно не влияет.

Настройка вручную

Чтобы вручную добавить стандартную библиотеку Kotlin в проект, обновите раздел dependencies в файле pom.xml, добавив следующее:

<dependencies>
    <dependency>
        <groupId>org.jetbrains.kotlin</groupId>
        <artifactId>kotlin-stdlib</artifactId>
        <!-- Uses kotlin.version specified in <properties/>: --> 
        <version>${kotlin.version}</version>
    </dependency>
</dependencies>

Если вы используете JDK 7 или 8 с версиями Kotlin ниже:

  • 1.8 — используйте соответственно kotlin-stdlib-jdk7 или kotlin-stdlib-jdk8.

  • 1.2 — используйте соответственно kotlin-stdlib-jre7 или kotlin-stdlib-jre8.

Зависимости от библиотек для тестирования

Если в проекте используется рефлексия Kotlin или фреймворки для тестирования, добавьте соответствующие зависимости. Для библиотеки рефлексии используйте kotlin-reflect, а для библиотек тестирования — kotlin-test и kotlin-test-junit5:

<dependencies>
    <dependency>
        <groupId>org.jetbrains.kotlin</groupId>
        <artifactId>kotlin-reflect</artifactId>
        <version>${kotlin.version}</version>
    </dependency>
    <dependency>
        <groupId>org.jetbrains.kotlin</groupId>
        <artifactId>kotlin-test-junit5</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

Зависимость от библиотеки kotlinx

Для библиотек kotlinx можно указать базовое имя артефакта или имя с суффиксом -jvm. См. файл README библиотеки на сайте klibs.io.

Например, чтобы добавить зависимость от библиотеки kotlinx.coroutines:

<dependencies>
    <dependency>
        <groupId>org.jetbrains.kotlinx</groupId>
        <artifactId>kotlinx-coroutines-core</artifactId>
        <version>1.11.0</version>
    </dependency>
</dependencies>

Чтобы добавить зависимость от библиотеки kotlinx-datetime:

<dependencies>
    <dependency>
        <groupId>org.jetbrains.kotlinx</groupId>
        <artifactId>kotlinx-datetime-jvm</artifactId>
        <version>0.8.0</version>
    </dependency>
</dependencies>

Управление зависимостями с помощью BOM

Спецификация материалов (BOM) — это специальный файл POM, который управляет версиями зависимостей в проекте. Он обеспечивает согласованность связанных артефактов и помогает избежать конфликтов версий.

Kotlin публикует артефакт kotlin-bom, в котором указаны версии библиотек Kotlin, таких как kotlin-stdlib, kotlin-reflect и kotlin-test, соответствующие одному и тому же выпуску Kotlin. Это полезно, если у других библиотек в проекте есть транзитивные зависимости от артефактов Kotlin, поскольку гарантирует, что все зависимости будут использовать одну и ту же версию Kotlin.

Чтобы использовать BOM Kotlin, импортируйте его в раздел <dependencyManagement> файла pom.xml следующим образом:

<dependencyManagement>
    <dependencies>  
        <dependency>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-bom</artifactId>
            <version>2.4.20</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

После импорта BOM можно объявлять зависимости Kotlin в разделе <dependencies>, не указывая их версии: они будут автоматически взяты из файла BOM.

  • Сам по себе импорт BOM не добавляет в проект никаких зависимостей. Он только управляет версиями явно объявленных и транзитивных зависимостей.

  • Если для зависимости по-прежнему указать <version>, это значение переопределит версию из BOM.

Если ваш проект публикует несколько библиотек, выпускаемых одновременно, вы можете предоставить собственный BOM, чтобы пользователи могли согласовать версии этих библиотек таким же образом. Инструкции по созданию собственного BOM см. в документации Maven.

Что дальше?

Настройка компилятора Kotlin

7 августа 2026 г.
Настройка проекта MavenНастройка компилятора Kotlin для проекта Maven

© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/maven-set-dependencies.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API