Какие сборочные инструменты используются, например Maven или Gradle
Что проверяют
Понимаете ли вы, что сборка это система про зависимости и воспроизводимость, а не кнопка Build в IDE. Ждут признаков, что вы правили конфигурацию руками, а не только запускали чужую. Следом почти наверняка спросят, как вы разруливали конфликт версий библиотек и что у вас гоняет CI.
Как отвечать
Сравнивайте по механике, а не по вкусу:
- Maven: декларативный
pom.xml, фиксированный жизненный цикл фаз (validate,compile,test,package,verify,install,deploy), плагины привязаны к фазам, структураsrc/main/javaодинакова во всех проектах; - зависимости в Maven: координаты
groupId:artifactId:version, скоупыcompile,provided,runtime,test, управление версиями черезdependencyManagementи BOM вродеspring-boot-dependencies, разбор конфликтов черезmvn dependency:treeи правило ближайшего объявления; - Gradle: сборка описана кодом, Kotlin DSL (
build.gradle.kts) для новых проектов, граф задач с входами и выходами, инкрементальность, демон, build cache и configuration cache (org.gradle.configuration-cache=true); - зависимости в Gradle: конфигурации
implementation,api,compileOnly,testImplementation, каталог версийgradle/libs.versions.toml, при конфликте по умолчанию побеждает старшая версия; - общее для обоих: wrapper (
./mvnw,./gradlew) фиксирует версию сборщика для всех, включая CI; toolchains задают JDK независимо от того, что стоит на машине; кэш зависимостей в~/.m2или~/.gradleнадо кэшировать в пайплайне.
Итог формулируйте одной фразой: Maven даёт соглашения и предсказуемость, Gradle даёт гибкость и скорость на многомодульных проектах, где важна инкрементальная сборка.
Где спотыкаются
Говорят «Gradle быстрее», не объясняя почему. За скоростью стоят инкрементальные задачи и кэши, а без них разница невелика.
Не различают implementation и api. Всё объявляют через api, транзитивные зависимости текут во все модули, и любая правка пересобирает половину проекта.
Чинят конфликт версий, прописывая нужную версию руками в каждом модуле. Для этого есть BOM и платформа, иначе через полгода версии разъедутся снова.