Продолжайте, специально даже зарегистрировался, что бы это сказать! :)
Хотел когда-то разобраться с Maven, только русскоязычной документации очень мало, да и на английском языке не нашел понятного и короткого руководства к действию.
Обязательно напишите продолжение! Очень хотел бы использовать в своих проектах maven, однако, как и другие пользователи выше, не нашёл документации на русском. Официальная документация очень запутанная, как мне показалось.
Пожалуйста, опишите отличия от анта.
Обычно бытует мнение, что «нам хватит и анта», однако все, кто пробует мавен не могут от него отказаться. Мы у себя уже используем мавен, и более чем довольны.
Обычно из преимуществ мавена выделяют: автоматическое развертывание проекта на рабочем месте, управление репозиторием используемых библиотек, автоматический запуск тестов, автоматическая сборка всего приложения, автоматическое обновление версий библиотек, огранизация единого пространства приложения и т.д.
Maven требует подключения к Интернет для обновления локального репозитория.
Ant работает в оффлайне.
Если проект завязан на Maven, то его легко собрать Ant'ом, обратное неверно.
Использовать вместо антовских тасков мавеновские плагины, только если плагины соответствующие есть в природе, и то — не всегда удачно.
Если проект распространяется в исходных кодах и передаётся в таком виде заказчику, то советовать заказчику установить Maven и его среду/репозиторий сборки — моветон. Уж куда легче присоветовать ему пользовать Ant без выхода в онлайн.
В общем, на первый взгляд Maven мне показался очередной серебряной пулей, которая не стоит выеденного яйца ради того, чтобы бросать Ant. Количество кода pom.xml и build.xml практически равно, а изучать и разбираться с Maven мучительно долго.
Если собирать один монолитный проект — разницы нет. Если управлять сборкой проектов, состоящих из зависимых модулей, каждый разрабатывается отдельно — то тут с антом уже не разобраться, проверено.
Спорить нет желания, просто мы так же думали, пока проект не вырос за рамки анта.
У меня есть проект состоящий из N модулей… как сделать так, что бы мавен сам мог определять в каких модулях были произведены локальные изменения, затем мавен компилил эти модули и использовал для сборки главного проекта
Например, в каком-то интерфейсе модуля CORE появился новый метод, затем этот метод был реализован в модулях в модулях A и B. Модули C, D, E, F,…, N не менялись. Как мне так собрать главный PARENT-проект, что бы 1) не надо было перекомпиливать все модули 2) перед сборкой главного проекта мне не нужно было устанавливать в локальный репозиторий модули CORE, A, B?
Apache Maven 2