Pull to refresh

Maven Overview Plugin

Reading time3 min
Views836
Не могу не поделиться радостью, связанной с «дожиманием» автора этого замечательного плагина…
… хотя всё по порядку.

Maven на Хабре был уже представлен вкратце тут как замечательное средство сборки Java-проектов и контроля зависимостей между модулями. Из остновных преимуществ перед ближайшими аналогами (например ANT, make, <a href=«ant.apache.org/ivy> Ivy) я бы выделил следующие:
— Грамотно организованное управление жизненными циклами модуля (Life cycle) такими как compile, test, package, install, deploy
— Объектная моделью проекта(POM), позволяющая использовать все преимущества OOP при разработке модулей проекта (например наследование, повторное использование (reusing) )
— Плагин-архитектура, позволяющая легко расширять Мавен доп. возможностями (например для генерации документации или изходного кода, коннектора с ВершКонтролом или деплоера в новую версию J2EE-Application server, и т.д.)
— Введено понятие Мавен-репозитория, как хранилища готовых модулей (артифактов). Репозиторий служит в основном для двух целей — хранение собсвенных скомпилированных артифактов и доступ к артифактам „третьих лиц“, любезно предоставляемых сообществом OpenSource. Для использования какого либо артефакта достаточно лиш правильно указать artefactId и репозиторий, в случае, если артефакт находиться в нестандартном месте. Остальное мавен делает сам — поиск и загрузка артефакта происходит автоматически. Так же предусмотрен механизм автоматического обновления артефактов в случае обновления их в репозитории разработчика. Таким образом Мавен всегда может „держать“ как себя так и ему подконтрольные проэкты в самом актуальном состоянии без дополнительных усилий со стороны разработчика.
— интеграция с большинсвом популярных IDE, таких как Eclipse, NetBeans, IDEA, JDeveloper.


Итак сначала суть задачи: построить „обозримую“ картину уже существующего мавен-проекта.
На текущем этапе накопилось уже достаточное количество проектов, порой не сильно связанных друг с дружкой. И вопрос как они на самом деле работаю и взаимодейсвуют встаёт всё более и более актуально. К тому же в проектах используються разнообразные, порой совершенно не совместимые „сторонние“ фрэймфорки, в которых для того что бы просто „охватить“ всю глубину кросс-зависимостей нужно убить месяц, а то и не один.

Фронт работ: пока ограничемся единственным проектом, который часто видят клиенты. Уж очень он, на первый взгляд, не очевиден в своих „зависимостях“, в которых так крут наш любимый Maven 2.
Цель: сделать тайное явным (ну или в сухом языке построить диаграмму зависимостей, так здорово представленную на сайте самого плагина).

Драй-Цвай-Айнс-ДАЙНЦ (для непосвящённых — цитата из рекламы Ебая в Германии 3-2-1 — и ТВАЁ! :))
Итак начальные условия
— проект уже существует. pom.xml как и ему положено лежит где нужно тоесть в корне. компиляция, деплой, и даже частично JUnit тесты работают. Индусы успешно деплоят и девелопят ЭТО уже больше года.
— settings.xml ( понимая правильно рекомендации автора изменяем добавляя кусок из последнего поста…
<pluginRepositories>

<pluginRepository>
<id>overview-snapshot-repo</id>
<url>http://maven-overview-plugin.googlecode.com/svn/snapshot-repository/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>

</pluginRepositories>


… вуаля- всё должно теперь работать.

Итак — идём в корень проекта и на 1-2-3 делаем:

1. #mvn -version
Maven version: 2.0.8
Java version: 1.5.0_14
OS name: „windows vista“ version: „6.0“ arch: „x86“ Family: „windows“

2. #mvn -e com.agilejava.maven.plugins:maven-overview-plugin:overview
+ Error stacktraces are turned on.
[INFO] Scanning for projects…
WAGON_VERSION: 1.0-beta-2
[INFO] — [INFO] Building


[INFO] [overview:overview]
[INFO] MavenOverviewMojo: Created outputFile: target\site\images\overview.png
[INFO] MavenOverviewMojo: Incrementing graph
[INFO] MavenOverviewMojo: Graph at: target\site\images\overview.png
[INFO] — [INFO] BUILD SUCCESSFUL
[INFO] — [INFO] Total time: 3 seconds
[INFO] Finished at: Sun Jun 22 00:04:07 CEST 2008
[INFO] Final Memory: 7M/17M
[INFO] —


3. Бегом-прыжками в желанный target\site\images\overview.png
и (О чудо!) желанная картинка ожила!
Yahoooooooooooo!

Единственно осталось теперь понять как ОНО работает ;)
Tags:
Hubs:
Total votes 2: ↑1 and ↓10
Comments8

Articles