Должны ли мы использовать Nexus или Artifactory для репозитория Maven?

StackOverflow https://stackoverflow.com/questions/364775

  •  21-08-2019
  •  | 
  •  

Вопрос

Мы используем Maven для большого процесса сборки (> 100 модулей).Мы храним наши внешние зависимости в системе контроля версий и используем ее для обновления локального репозитория.

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

Мы рассматриваем Nexus и Artifactory.Каковы причины предпочтения одного над другим?Есть ли другие, которые нам следует рассмотреть?

Это было полезно?

Решение

Не знаю, как насчет Artifactory, но вот причины, по которым я использую Nexus:

  • Очень простая установка (а начиная с версии 1.2 и очень простое обновление)
  • Очень хороший веб-интерфейс
  • Простота обслуживания, практически нет административных затрат.
  • Предоставляет вам RSS-каналы недавно установленных, сломанных артефактов и ошибок.
  • Он может группировать несколько репозиториев, поэтому вы можете зеркалировать несколько источников, но вам понадобится только одна или две записи в вашем файле settings.xml.
  • Развертывание из Maven работает «из коробки» (нет необходимости во взломах WebDAV и т. д.).
  • это бесплатно
  • Вы можете перенаправить пути доступа (т.е.какой-то сломанный pom.xml требует «abc» от «xxx»).Вместо того, чтобы патчить POM, вы можете исправить ошибку в Nexus и перенаправить запрос туда, где действительно находится артефакт.

Другие советы

Я уверен, что если говорить только о хранении бинарников из "mvn deploy«Оба справятся.

Мы очень широко используем Artifactory со всеми обновлениями на этом пути.Множество проектов, множество развернутых снимков и проксированных внешних репозиториев.Ни одной проблемы.Мне трудно объяснить, как другие люди испытывают проблемы с базой данных, индексацией или чем-то еще.Ничего подобного с нами никогда не случалось.Также Artifactory позволяет хранить данные на диске и использовать БД только для хранения метаданных, это достаточно гибко (см. больше здесь).

Что делает эти приложения очень у них другой подход к интеграции с другими инструментами и технологиями сборки. Nexus и Sonatype в значительной степени привязаны к Maven и m2eclipse.Они игнорируют все остальное и только недавно начали работать над собственной интеграцией Hudson (см. их Вебинар по Maven 3). РЕДАКТИРОВАТЬ: Это уже не так, по состоянию на 2017 год Nexus дает гораздо большая поддержка других инструментов сборки Конец редактирования

Artifactory предлагает потрясающие Интеграция Hudson, TeamCity и Bamboo, и Градл / Айви поддерживать.Таким образом, хотя Nexus ничего не дает вам, как только вы выходите из «зоны комфорта» Sonatype (Maven, m2eclipse), Artifactory поддерживает и сотрудничает со всеми основными инструментами сборки.

Фактически, возможность развертывания артефактов сборки из Hudson после завершения работы, а не "mvn deploy"-это огромная разница:Плагин Artifactory Hudson выполняет атомарное развертывание всех артефактов. однажды, только если задание сборки завершилось успешно."mvn deploy" запускается после каждого модуля и может развернуть частичный набор артефактов, если задание сборки завершится сбоем в середине.Развертывание из Maven после завершения модуля, а не с сервера сборки после завершения задания — действительно плохая вещь.

Как видите, Artifactory мыслит «нестандартно», тогда как Nexus думает «внутри коробки» и заботится только о Maven и артефактах Maven.

Еще одна вещь, которая делает Artifactory более доступной, — это их облачное решение Artifactory Online.Примерно за 80 долларов в месяц у вас есть собственный экземпляр Artifactory, для которого не нужно выделять какой-либо сервер.

В Артифабрике есть простой и понятный REST API, не знаю, как это работает на Нексусе.Редактировать Нексус также имеет REST API что вы также можете легко использовать.

Подводя итог, я думаю, что для базового хранения артефактов Maven подходят оба варианта. Но в то время как Nexus перестает быть строго «менеджером репозитория Maven», Artifactory продолжает и продолжает оставаться общим «хранилищем двоичных файлов» для любых двоичных файлов из любого инструмента сборки и CI-сервера.

Артистические опоры оба серверные части файловой системы и базы данных.Хранилище основано на контрольной сумме, и идентичные двоичные файлы сохраняются только один раз, независимо от того, сколько раз они появляются в репозитории, что делает Artifactory более эффективным с точки зрения хранения.Перемещение и копирование также очень дешевы из-за этой архитектуры (в Nexus нет REST для перемещения/копирования - вам нужно переместить данные в файловой системе, а затем выполнить корректирующие действия в репозитории, чтобы сообщить ему, что содержимое изменилось).

Еще одним важным отличием является то, что Artifactory имеет уникальную интеграцию с Hudson и TeamCity для сбора информации о развернутых артефактах, разрешенных зависимостях и данных среды, связанных с запусками сборок, что обеспечивает полную отслеживаемость сборки.

Artifactory хранит артефакты в базе данных, а это значит, что если что-то пойдет не так, все ваши артефакты исчезнут.Nexus использует простой файл для хранения ваших драгоценных артефактов, поэтому вам не придется беспокоиться о том, что они все потеряются.

Если вам нужны функции «Pro» (например,Промежуточные репозитории, продвижение артефактов, NuGet), то вам необходимо учитывать различные модели ценообразования, которые отображаются на их веб-сайтах.

В итоге:

  • Артифабрика Про
    • ты платишь за сервер
    • вы можете заплатить больше за увеличенное время обслуживания
  • Нексус Про
    • ты платишь за место, т.е.сколько разработчиков загружают артефакты
    • Служба поддержки работает только с понедельника по пятницу с 08:00 до 20:00 по восточноевропейскому времени, независимо от того, сколько вы платите.

Независимо от того, сколько у вас пользователей, Nexus Pro предлагает услугу поддержки, которая в целом эквивалентна «Silver Value Pack» от Artifactory стоимостью 7450 долларов в год.

За 7450 долларов в год вы сможете купить примерно 67 мест Nexus Pro (1–50 по 108 долларов, остальные по 120 долларов).

Только с точки зрения цены и поддержки Nexus Pro имеет смысл, пока вы не наберете 67 пользователей, после чего Artifactory станет более дешевым вариантом.

Если вы осуществляете всю поддержку самостоятельно;однако эта волшебная точка составляет около 23 пользователей (самое базовое предложение поддержки Artifactory стоит 2750 долларов в год).

Недавно я провел небольшое исследование об Artifactory 2 и Nexus 1.3.Я перечислю здесь основные различия, которые я нашел:

  • Artifactory хранит метаданные и, при необходимости, файлы в БД, Nexus записывает непосредственно в файловую систему.Есть плюсы.и минусы.для каждого подхода.БД поддерживает транзакции, а в ФС к хранимым файлам можно получить прямой доступ.
  • У Artifactory более высокие системные требования, особенно к дисковому пространству.
  • В Artifactory есть поддержка LDAP, а в Nexus — только в платной версии.С другой стороны, бесплатный плагин LDAP для Nexus доступен в коде Google.

Самое полное сравнение: http://binary-repositories-comparison.github.io/

Вы должны использовать Artifactory, его последняя версия была настоящим прыжком. из его новой версии 2.0

С точки зрения учащихся, я отмечаю некоторые конкретные различия между ними.

  1. Развертывание Sonatype .war в настоящее время не поддерживается на сервере приложений Jboss, хотя оно работает под Tomcat.
  2. В настоящее время Sonatype не предлагает мне образ машины Amazon (AMI), который я мог бы быстро протестировать.
  3. Artifactory AMI предоставляется Bitnami, и его установка занимает всего несколько минут и еще несколько минут для настройки, возможно, несколько десятков минут, в зависимости от того, чего вы пытаетесь достичь.
  4. Artifactory предлагает SaaS-версию Artifactory в облаке, чтобы вы могли сосредоточиться на выполнении задач, а не на инфраструктуре.
  5. У меня нет опыта работы с Nexus, но Artifactory мне показался очень интуитивно понятным и простым в настройке, по крайней мере, на начальном этапе.
  6. Добавлено - я отмечаю, что Руководство пользователя Artifactory, которое может подойти опытному профессионалу, немного содержит некоторые подробные объяснения.Например, вначале нужно разархивировать, а затем добавить репозиторий, скажем, Jboss EAP Enterprise Repo от RedHat.Все идет нормально, но потом, когда я попытался просмотреть импортированные артефакты, Artifactory сообщила об отсутствии артефактов?Никаких ошибок или предупреждений нет, поэтому теперь я ищу объяснение.Это нормально или не нормально?Простое объяснение в документе может быстро указать правильное направление.Будучи хорошим участником, я добавляю эти комментарии в проект на благо других новичков.

Если оставить в стороне всю политику/религию, лицензирование имеет значение для некоторых организаций.

Нексус это лицензия GPL сейчас AGPLv3 и сейчас Публичная лицензия Eclipse (EPL).

Артефабрика это Лицензия Apache LGPLv3 лицензируется начиная с версии 2.1 продукта.

Вы также можете рассмотреть Архив, просто для сравнения.Это лицензия Apache 2.0.

Я вижу, что использование Nexus растет, в то время как использование Artifcatory в целом остается на прежнем уровне.

enter image description here

Картинка взята отсюда http://blog.sonatype.com/2014/11/42000-nexus-repository-managers-and-growing/

Также есть сравнение матриц http://docs.codehaus.org/display/MAVENUSER/Maven+Repository+Manager+Feature+Matrix

И Artifactory, и Nexus имеют более или менее схожий набор функций, но поддержка LDAP Artifactory делает его более привлекательным по сравнению с Nexus.Хотя у Nexus тоже есть поддержка LDAP, но в платной версии :-(

Хммм... мой опыт работы с артефактами ужасен... но я относительный новичок, так что отнеситесь к этому с недоверием.Моя общая жалоба заключается в том, что файлы jar, недавно загруженные в Artifactory, похоже, не индексируются сразу - как в течение нескольких часов - и, похоже, не существует хорошего способа заставить это сделать.Я пробовал разные вещи, которые, казалось, должны были сработать, но не сработали.Я работал с m2eclipse, добавляя зависимости к проекту, который конвертирую из ant.Когда я пытаюсь добавить банку, которую я только что добавил, в артефакт, я ожидаю, что она появится в качестве выбора в селекторе, но это не так.

Коллега сказал мне, что они установили Nexus и пока он им нравится... но я пока не ручаюсь за это.Я собираюсь установить это на компьютер с Linux, как только ИТ-специалисты найдут его.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top