Система автоматической сборки проектов - отвечает за управление жизненным циклом проекта, от начала разработки до публикации артефакта (иногда и до деплоя на прод).



Выглядит это примерно так: вы написали код -> нужно подтянуть все зависимости, в том числе и транзитивные -> генерация кода (lombok, mapstruct, wsdl и тд) -> check style проверки -> код нужно скомпилировать -> запустить тесты -> сформировать отчет -> упаковать это все в jar или war -> запаблишить этот артифакт в репозиторий.



Благодаря тому, что системы сборки поддерживают подключение плагинов, мы с вами можем добавлять любые дополнительные шаги в наш пайплайн. Но то, что я описал - это практически дефолтный жизненный цикл проекта, которым как раз и управляют системы по автоматической сборке проекта.



Примеры таких систем для Java: Gradle, Maven, Ant.

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

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



В общем, данные системы позволяют одной командой сделать все вышеперечисленное. Более того, данные системы могут даже задеплоить вам все что нужно на прод, но чаще всего все заканчивается публикацией артифактов, а деплой уже входит в отдельный пайплайн.