Перейти к основному содержимому

Преобразование сборки Maven в Gradle

· 3 мин. чтения

1. Обзор

В этом руководстве мы узнаем, как преобразовать сборку Maven в сборку Gradle. Для этого мы будем использовать команду gradle init в существующем проекте Maven.

2. Настройка Грейдла

Давайте установим Gradle на нашу машину, скачав дистрибутив Gradle и следуя указанным инструкциям . Мы также можем углубиться, чтобы узнать больше о Gradle .

3. Файл сборки Maven

Начнем со стандартного Java-проекта Maven, в корневом каталоге которого находится следующий файл pom.xml :

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.foreach</groupId>
<artifactId>maven-to-gradle</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
</dependencies>
</project>

4. Преобразование в Gradle

Давайте перейдем в корневой каталог этого проекта Maven, содержащего главный файл pom.xml, и выполним команду gradle init . Когда будет предложено ответить, давайте напечатаем yes и нажмите Enter. Мы должны увидеть следующий вывод:

$ gradle init

Found a Maven build. Generate a Gradle build from this? (default: yes) [yes, no] yes


> Task :init
Maven to Gradle conversion is an incubating feature.
Get more help with your project: https://docs.gradle.org/6.1/userguide/migrating_from_maven.html

BUILD SUCCESSFUL in 3s
2 actionable tasks: 2 executed

5. Сгенерированные файлы сборки Gradle

Теперь давайте перепроверим содержимое корневого каталога нашего проекта. Теперь мы должны увидеть ряд новых файлов в нашем корневом каталоге. Если мы хотим углубиться, мы можем взглянуть на gradle-build-settings-properties .

5.1. build.gradle

Файл build.gradle является основным компонентом нашего процесса сборки Gradle и прямым эквивалентом файла pom.xml для сборок Maven. Здесь мы видим, что атрибуты pom.xml, такие как groupId , версия и зависимости , переведены в их эквиваленты Gradle. Также присутствует атрибут sourceCompatibility , который сообщает нам, какую версию Java использовать при компиляции исходников Java. В разделе плагинов у нас есть « java », который обеспечивает поддержку создания любого типа проекта Java, и «maven-publish», который обеспечивает поддержку публикации артефактов в Maven-совместимых репозиториях.

/*
* This file was generated by the Gradle 'init' task.
*/

plugins {
id 'java'
id 'maven-publish'
}

repositories {
mavenLocal()
maven {
url = 'http://repo.maven.apache.org/maven2'
}
}

dependencies {
implementation 'org.apache.commons:commons-lang3:3.12.0'
}

group = 'com.balendung'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

publishing {
publications {
maven(MavenPublication) {
from(components.java)
}
}
}

5.2. настройки .gradle ``

Файл settings.gradle используется Gradle на этапе инициализации, чтобы определить, какие проекты включены в сборку.

/*
* This file was generated by the Gradle 'init' task.
*/

rootProject.name = 'maven-to-gradle'

5.3. gradlew и gradlew.bat

Два сценария запуска, один для Windows и один для Unix, также генерируются Gradle. Эти сценарии можно использовать для запуска проекта на компьютере, на котором не была предварительно настроена Gradle. Мы можем узнать больше о файлах-оболочках Gradle, взглянув на gradle-wrapper .

6. Заключение

В этой статье мы узнали, как сборку Maven, содержащую pom.xml , можно преобразовать в сборку Gradle с несколькими файлами сборки, такими как build.gradle , settings.gradle , gradlew и gradlew.bat. Исходный код из этой статьи можно найти на GitHub .