Versioning & Packages

Maven в Gradle

Конвертация зависимостей из XML, вызовов Gradle или координат с выбором формата результата.

Maven в Gradle

Входные зависимости

Результат преобразования

Преобразование выполняется в браузере. Декларации не загружаются на сервер и не отправляются в репозитории.

Координаты: g:a[:v[:classifier]]. Вызовы и координаты — по одному на строку; скобки блока — на отдельных строках.

До 65 536 символов и 200 зависимостей. Только литералы внешних модулей, без целых проектов.

Ввод или параметры изменены. Перед экспортом повторите преобразование.

Maven в Gradle пригодится, если документация библиотеки показывает пример для другой системы сборки. Выделите нужные зависимости без родительского проекта, репозиториев и плагинов.

Результат — фрагмент деклараций для вашего проекта. Преобразование синтаксиса не подтверждает существование версии и не проверяет разрешимость графа зависимостей.

Зачем использовать Maven в Gradle

Сохранить координаты целиком

Maven в Gradle переносит группу, артефакт, версию и классификатор вместе. Поля XML превращаются в строки Groovy или Kotlin; при смене DSL поддерживаемая конфигурация Gradle сохраняется.

Цветные поля координат переходят из карточки XML в две компактные декларации

Увидеть различия classpath

Область видимости Maven не всегда точно соответствует конфигурации Gradle. Примечания рядом с результатом помогают проверить публикацию API и доступность зависимостей в тестах перед переносом.

Маркеры области видимости и классификатора проходят преобразование, а целый проект останавливается на входе

Сначала проверьте порядок координат и назначение

01

Уточните смысл четвёртого поля

Автоопределение принимает XML, поддерживаемые вызовы Gradle и координаты по одной на строку. Формат — g:a[:v[:classifier]]. Четвёртое поле всегда означает классификатор, а не packaging Maven.

02

Решите, нужно ли раскрывать зависимость

Для compile и отдельных координат используется implementation. Выберите api, если Java-библиотека раскрывает эту зависимость потребителям. При смене DSL существующая конфигурация Gradle имеет приоритет.

03

Дождитесь обновления результата

Автоматический запуск ждёт 350 мс после редактирования. Отключите его для запуска через Ctrl/Cmd + Enter. Любое изменение блокирует копирование и скачивание до получения актуального результата.

Какие сведения остаются в декларации

Обратный путь Gradle в Maven

Поддерживаются implementation, api, compileOnly, runtimeOnly и три тестовые конфигурации. В XML область compile опускается как значение по умолчанию, остальные поддерживаемые области записываются явно.

Groovy и Kotlin DSL

Groovy использует одинарные кавычки; Kotlin DSL — скобки и двойные кавычки. При прямом переходе между форматами api и testRuntimeOnly сохраняют имена и не сводятся предварительно к областям Maven.

Классификатор и управляемая версия

Четвёртый сегмент координаты становится classifier в XML. Отсутствующая версия остаётся пропущенной: её должна предоставить уже настроенная BOM, платформа или управление зависимостями. Для классификатора нужна явная версия.

Пакет деклараций и необязательная обёртка

До 200 зависимостей сохраняют исходный порядок и повторы. Можно добавить блок dependencies в целевом синтаксисе. Комментарии и исходные пробелы не переносятся.

Границы преобразования фрагментов

Не переносит проект целиком
Полный pom.xml или build.gradle может содержать плагины, профили, репозитории и наследование. Такие структуры отклоняются. Используйте средства миграции проекта и проверяйте результат реальной сборкой.
Только литералы внешних модулей
Свойства, интерполяция, динамические версии, диапазоны, карты, замыкания, project(), files(), platform() и псевдонимы каталога отклоняются. В полях разрешены ASCII-буквы, цифры, точки, дефисы и подчёркивания.
Неподдерживаемые данные вызывают ошибку
optional, exclusions, system/import и типы кроме jar не принимаются. Неизвестные поля и атрибуты, DTD и инструкции обработки также останавливают преобразование. Частичный результат со скрытой потерей данных не экспортируется.
Проверьте смысл области видимости
compile переходит в implementation или api, provided — в compileOnly, runtime — в runtimeOnly, test — в testImplementation. Обратное преобразование объединяет некоторые различия Gradle; classpath тестов и публикация могут измениться.
Ограничения размера и записи
Максимум 65 536 символов и 200 зависимостей. Каждый вызов Gradle или координата занимает строку; скобки обёртки стоят на отдельных строках. Версии, транзитивные зависимости и конфликты не проверяются в репозитории.

Вопросы о Maven в Gradle

Как преобразовать type и scope зависимости Maven для Gradle?

Четыре поддерживаемые области сопоставляются по правилам выше. type должен отсутствовать или равняться jar. test-jar и pom требуют знания семантики артефакта или платформы, поэтому простая замена поля не выполняется.

Можно ли преобразовать зависимость без версии?

Да. Принимаются group:artifact и XML без version. Версия не придумывается: её должна предоставить уже настроенная BOM, платформа или система управления зависимостями в целевом проекте.

Поддерживаются ли свойства вида ${spring.version}?

Нет. Сначала разрешите свойство в конкретное значение. Выражение Maven, перенесённое внутрь строки Gradle, может получить другой смысл; скрипты сборки здесь не исполняются.

Как заменить Groovy build.gradle на Kotlin build.gradle.kts?

Выберите Kotlin и вставьте поддерживаемые вызовы зависимостей. Инструмент расставит скобки и кавычки. Задачи, плагины, карты аргументов и остальной Groovy-код нужно переносить отдельно.

Можно ли конвертировать плагин Maven в Gradle?

Нет. Плагин Maven выполняет цели в жизненном цикле сборки, а не просто задаёт координаты зависимости. Этот инструмент преобразует только зависимости; аналог плагина и его настройку в Gradle следует подбирать отдельно.

Не нашли ответ?

Проверьте декларацию в своём проекте

Maven в Gradle подготовит новый фрагмент. Проверьте число зависимостей и примечания об областях видимости, затем скопируйте актуальный результат.