Какой инструмент сборки вы выберете для нового Java-микросервиса и почему?

Ответ

Для нового микросервиса на Java/Kotlin я бы выбрал Gradle.

Сравнение с Maven:

Критерий Gradle Maven
DSL (язык) Kotlin/Groovy (гибкий, программируемый) XML (декларативный, может быть многословным)
Производительность Инкрементальные сборки, кеширование задач, параллельное выполнение Сборка с нуля каждый раз, медленнее на больших проектах
Кастомизация Легко писать свои задачи и плагины Сложнее, требует написания плагинов на Mojo
Поддержка Официальный сборщик для Android, отлично интегрирован с Spring Boot Стандарт де-факто, огромное сообщество

Пример build.gradle.kts для Spring Boot 3:

plugins {
    java
    id("org.springframework.boot") version "3.1.5"
    id("io.spring.dependency-management") version "1.1.3"
}

group = "com.example"
version = "0.0.1-SNAPSHOT"

java { sourceCompatibility = JavaVersion.VERSION_17 }

repositories { mavenCentral() }

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-web")
    testImplementation("org.springframework.boot:spring-boot-starter-test")
}

tasks.withType<Test> { useJUnitPlatform() }

Итог: Gradle предлагает лучшую производительность, большую гибкость и современный DSL на Kotlin, что делает его предпочтительным для новых проектов. Maven остается хорошим выбором для простых проектов или в командах с сильной экспертизой в нем.

Ответ 18+ 🔞

Так, слушай сюда, разговор про сборщики. Ну, блядь, как будто выбор есть, честно. Для нового микросервиса на Java/Kotlin — это Gradle, и точка. Сидишь, думаешь, Maven или Gradle? Это как выбирать между телегой и, ну, не знаю, электровелосипедом с турбонаддувом. Оба довезут, но ощущения, блядь, разные.

Сравнительная таблица, чтобы ты не бздел:

Критерий Gradle Maven
Язык (DSL) Kotlin/Groovy (гибкий, можно почти код писать) XML (декларативный, многословный, глаза сломаешь)
Скорость Инкрементальные сборки, кеш, параллельность — летает. Каждый раз с нуля, как будто мир заново создаёт. На больших проектах — пиздец как долго.
Кастомизация Свои задачи написать — раз плюнуть. Ну, если хочешь плагин на Mojo писать — удачи, ебать.
Поддержка Официальный для Android, Spring Boot его обожает. Стандарт де-факто, сообщество овердохуищное, но староватое.

Вот, смотри, как просто build.gradle.kts для Spring Boot 3 выглядит:

plugins {
    java
    id("org.springframework.boot") version "3.1.5"
    id("io.spring.dependency-management") version "1.1.3"
}

group = "com.example"
version = "0.0.1-SNAPSHOT"

java { sourceCompatibility = JavaVersion.VERSION_17 }

repositories { mavenCentral() }

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-web")
    testImplementation("org.springframework.boot:spring-boot-starter-test")
}

tasks.withType<Test> { useJUnitPlatform() }

Видишь? Чисто, понятно, на Kotlin. Не эта хуйня с XML, где три страницы, чтобы зависимость подключить.

Итог, блядь: Gradle — это скорость, гибкость и современность. Maven — это для тех, кому похуй на время сборки или кто в XML-ах, как рыба в воде, плавает. Но для нового проекта — даже не думай, бери Gradle и не парься.