Apache Maven


Apache Maven — фреймворк для автоматизации сборки проектов на основе описания их структуры в файлах POM (англ. Project Object Model), на языке XML[5]. Проект Maven издаётся сообществом Apache Software Foundation, где формально является частью Jakarta Project.

Название системы является словом из языка идиш, смысл которого можно примерно выразить как «собиратель знания»[6].

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

Maven используется для построения и управления проектами, написанными на JavaC#RubyScala, и других языках[7].

Среди примечательных альтернатив — система автоматической сборки Gradle, построенная на принципах Apache Ant и Maven, но использующая специализированный DSL на Groovy вместо POM-конфигурации.

Maven был создан канадцем Ясоном ван Зилом (Jason van Zyl) и организованной им фирмой Sonatype. Он начался как подпроект Apache Turbine в 2002 году, в 2003 году Maven был квалифицирован как Apache-проект верхнего уровня, тогда же появилась его первая версия — Maven 1.x, опубликованная 13 июля 2004 года как версия 1.0. Это происходило, однако, так быстро, что некоторые частности оказались непродуманными, например, слишком много конфигурации, проблемы с производительностью.