Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Maven, не понимаю для чего 
:(
    Опции темы
chaos
  Дата 25.7.2009, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: нет
Всего: 44



Здравствуйте!

Объясните пожалуйста для чего нужен Maven.
я честно говоря не осилил.

Ну создает он директории, а дальше что ? какая польза то от этого smile 

Вообщем не осилил философию данной штуки
PM WWW   Вверх
cube
Дата 25.7.2009, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 11.4.2007

Репутация: нет
Всего: 3



Я не пользуюсь Maven, я пользуюсь Ant'ом, мавен билдит твой проект ))

PM MAIL   Вверх
chaos
Дата 25.7.2009, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: нет
Всего: 44



антом я тоже могу собрать проект
PM WWW   Вверх
Aristotelb
Дата 25.7.2009, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 23.3.2007
Где: Саратов

Репутация: нет
Всего: 5



Цитата(chaos @ 25.7.2009,  18:26)
антом я тоже могу собрать проект

Я тоже могу собрать проект командами javac и jar  smile .

Вопрос лишь в том какая часть работы будет сделана автоматически. 
Главный плюс мавена это простое управление зависимостями проекта: как внешними (умеет скачивать библиотеки из репозитория), так и зависимостями между модулями проекта.

Кроме того это стандартная структура каталогов и куча плагинов на все случаи жизни.
PM MAIL ICQ   Вверх
chaos
Дата 25.7.2009, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: нет
Всего: 44



А! только что перечитал определение Maven'а и его сравнение(в одну строчку) с Ant'ом smile
Начинаю понимать потихоньку догонять smile

Цитата

Maven, в отличии от другого сборщика проектов Ant, обеспечивает декларативную, а не императивную сборку проекта

http://ru.wikipedia.org/wiki/Apache_Maven
PM WWW   Вверх
COVD
Дата 25.7.2009, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 6
Всего: 43



В IDE обычно есть что-то встроенное для сборки проекта. В Нетбинсе кажется Ант. И знать разницу между "декларативным" и "императивным" вроде нет необходимости. Более того, предположу, что громоздкие проекты со сложной структурой, которые требуют изысканной сборки, неудобны и по другим причинам. Лучше набор независимых приложение, компонентов, модулей. Но, наверное, это не всегда возможно. 
PM MAIL   Вверх
XEugene
Дата 26.7.2009, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 1.1.2008

Репутация: нет
Всего: 2



Чой-то не совсем ясно объясняет википедия разницу между Ant и Maven...

Я понял, что имелось ввиду, только потому что пользовался и антом и мейвеном.  А вообще, принцип реализованный в Ant, мне кажется вполне "декларативным".  Ну да, там каждое действие должно быть реализовано явно.  Но слово "императивный" тут только сбивает с толку, можно подумать что Ant представляет собой язык программирования, на котором пишется код выполняющий сборку. 

Это сообщение отредактировал(а) XEugene - 26.7.2009, 22:49
PM MAIL   Вверх
polosatij
Дата 24.8.2009, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: нет
Всего: 8



Цитата(COVD @  25.7.2009,  19:46 Найти цитируемый пост)
Лучше набор независимых приложение, компонентов, модулей. Но, наверное, это не всегда возможно.  


прошу прощения, но меня немного "возмутил" ответ COVD.

скажи, а разве это вообще возможно? каким образом можно поистроить jee приложение в котором общие интерфейсы, например, на DAO? компонентная сборка гарантирует сначала дупликацию кода, а потом и в последствии (по другому не получится) его разницу при абсолютно идентичных задачах.

если слишком тяжело объяснил, попытаюсь объяснить траблу, на которую я не знаю ответа.

допустим есть

(1)

base
dao
manager

проекты, каждый из них собирается maven-ом как *.jar

при такой архитектуре не возможна компонентная архитектура, т.к. какой бы компонент не строился, всё размажется по этим трём подпроектам.

приведу другой пример

(2)

component1
component2
component3

архитектура на первый взгляд кажется идеальной, а каким образом решать траблы с общими интерфейсами? в каждом пакете используются DAO и не плохо было бы иметь общий интерфейс на CRUD операции. ладно, скажешь ты, заведём ещё один проект, и положим туда интерфейсы:

base
component1
component2
component3

а как же быть теперь с утилитами? тоже положить в base? у компонентов начинаются зависимости между собой, как только они начинают интерагировать друг с другом, зависимости на entity уровне, manager-ах, утилитах и других "паттернах" программирования.

при малом коде, всё кажется идеально, но как только код растёт, все компоненты переплетаются друг с другом и хотя они могут иметь структуру зависимостей в виде дерева, чем выше компонент в дереве, тем всё тяжелее и тяжее от него отказаться. но мы ведь говорили о компонентах? типа, взял вытащил и туда другой вставил и всё работает? хорошо, когда пишутся framework-и, типа velocity, log4j и т.д. в них чётко разделена логика. НО... она возможна вообще в jee мире?? 

------------

пример из жизни: 

мы пишем некое приложение jee на spring. мы для сборки проекта использовали ант. само приложение собирается как бы из двух частей. дабы облегчить работу верстальщику мы сделали для него view и некие моки, которые просто описывали manager-ы (а не прямая работа с базой данных). всё было зашибить, пока проект не начал дико расти по всем направлениям. пришлось делить подпроекты. сначала из двух стало четыре. код ант-а стал просто беспощадно почти дублироваться и в нём, как всегда, были лишь некоторые мелочные различия. это дошло до того, что подправление каких-то мелочей в ант-е, начало занимать часы. не хватка все различных плагинов (которые в ант-е нужно подключать руками) начало тока раздувать ант. а ведь у нас ещё и не было написано половины приложения. тогда мы решили перейти на мавен, как спасение от ситуации.

ну чтож, типа всё просто, у нас интерфейсы чётко соблюдены, попробуем построить компоненты. через 4 дня беспощадных и продуктивных усилий мы сдались. файлы так переплитались через интерфейсы, что стало не возможно их разделить и построить хоть какое-то "приличное" дерево. это была попытка номер (1)

набравшись немного опыта, Алекс начал делить файлы уже не как компоненты, а как layer-ы: dao, manager, velocity, spring, base и т.д. размельчив примерно на 25 пакетов, проект из простой структуры вырос в какую-то непонятную машину. так прошло ещё дня четыре.

поняв, что пакетов много и попытавщись притащить за уши идею номер (1) с новыми мыслями и наработками мы сдались через дня 4 заного.

следующая попытка вернула нас на layer-ы + (только частичная!) компонентная структура. подпроектов стало 11, разделение стало чёткое и некоторые вещи просто объеденены.

теперь, что я хотел сказать. компоненты у нас в проекте по дереву стоят в самом вверху иерархии, а это значит, так просто заменить их уже наврядли удастья. они врасли в проект, хотя там и навалом интерфейсов для разделения.

как же строить JEE приложения?  smile 

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



--------------------
PM   Вверх
polosatij
Дата 24.8.2009, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: нет
Всего: 8



COVD, предлогаю обсудить в другом топике, дабы не засорять этот smile

архитектура, возможна ли компонентная архитектура в мире JEE?


--------------------
PM   Вверх
Tony
  Дата 25.8.2009, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

Репутация: 3
Всего: 12



Мавен и ант существуют для разных задачь. Ант преднозначен для выполнения каких то действий на основе build.xml. Build.xml ты можешь писать как хо4ешь. Мавен даёт полнуй процесс сборки проекта: компилация, тест, упаковка .... В отличие от аната он даёт:
  •  Проекты иммеют единую стрктуру. Не надо думатть о том что когда тебе передают чужой проект как его собрать и что там вообещ есть.
  •  Ризолвит проблемы с библотеками + nexus репозиторий
  •  Полнуй процесс сборки (не надо самому писать build, package....)
  •  Можно создавать свои архетипы проектов. Очень полезная вещь для однотипных задачь
 

Топик стартер, советую тебе углубиться в мавен и ты поймёшь как им удобно пользоваться. Кстати сам раньше думал, нафиг он нужн  smile . Пока не опробывал  smile 


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
Samotnik
Дата 11.9.2009, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 3
Всего: 191



Цитата(Tony @  25.8.2009,  12:40 Найти цитируемый пост)
Ант преднозначен для выполнения каких то действий на основе build.xml

ну так Мавен, тоже ведь по нему билдит проекты 
а вообще МАвен рулит  smile   smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java tools & IDE's | Следующая тема »


 




[ Время генерации скрипта: 0.0841 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.