Настройка репозиториев и зависимостей в проекте 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>
Как правило, чтобы добавить зависимость от библиотеки, следует объявить новую запись <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>
Настройка вручную
Чтобы вручную добавить стандартную библиотеку 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>
Зависимости от библиотек для тестирования
Если в проекте используется рефлексия 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.
Что дальше?
© 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