Каковы сходства, различия и компромиссы между Ivy, Maven и Archiva? - PullRequest
4 голосов
/ 20 мая 2011

Я запутался в отношении Ivy, Maven и Archiva - похоже, все они пытаются решить похожие проблемы.

Я думаю, что я прав, полагая, что Ivy модифицирует функциональность, подобную Maven, в Ant (т.е. муравей + плющ ~ = мавен)?Но мне неясно, что Archiva добавляет (если вообще что-то) в Ant + Ivy и / или Maven.Когда я буду использовать (скажем) Ivy, когда я буду использовать Archiva и когда будет иметь смысл комбинация (если она вообще есть)?

Справочная информация: Нам необходимо установить какое-то управление зависимостями и создать архивирование артефактов на месте.,Наш источник является кросс-языковым (смесь C ++, Java, Scala, Ruby и Python), а наш процесс сборки кросс-платформенный (Linux, Windows, OSX, Android, iOS, QNX).У нас есть существующая система сборки на основе scons, которая несколько сложна.В идеале мы хотим добавить к этому управление зависимостями и архивирование артефактов, а не, скажем, переносить оптовые продажи в Maven.

1 Ответ

9 голосов
/ 20 мая 2011

Изначально одним из больших преимуществ, которые Maven имел по сравнению с Ant, была простота управления зависимостями, но вы правы в том, что Ivy теперь восполнила этот пробел, а это означает, что Ant + Ivy предоставляет некоторые аналогичные функциональные возможности для Maven с точки зренияуправление построением и зависимостями.

Теперь, когда оба обеспечивают управление зависимостями, одним из важных факторов является использование Mavens «Соглашения о конфигурации».Некоторые люди предпочитают Ant, поскольку он более гибкий / мощный для пользовательских задач / сборок, тогда как некоторые люди предпочитают maven, поскольку он намного более лаконичен и прост.

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

Archiva - это нечто отличное от Ant + Ivy / Maven - Archiva - это веб-приложение, предоставляющее пользовательский интерфейс для простого управления всеми файлами JAR в вашем хранилище.,Как правило, они могут быть очень полезны для вашей сборочной команды, чтобы легко контролировать и контролировать все файлы JAR, которые используются в вашем проекте.Вы должны использовать Archiva рука об руку с Maven для управления вашим центральным репозиторием Maven.

Также стоит отметить, что из моего опыта есть несколько альтернатив Archiva, таких как Nexus и Artifactory, которые могут быть более подходящими (archiva не будет моим первым выбором в управлении репо) - посмотрите это обсуждениеразличия между Nexus / Artifactory Должны ли мы использовать Nexus или Artifactory для Maven Repo?

...