Мы используем Maven для большого процесса сборки (> 100 модулей). Мы храним наши внешние зависимости в системе управления версиями и используем это для обновления локального репо.
Тем не менее, мы готовы перейти на локальное репо, которое может кэшировать централизованно, чтобы нам не приходилось заранее загружать все сторонние ресурсы (но у нас все еще может быть локальное репо для извлечения). Кроме того, мы хотим публиковать наши внутренние артефакты сборки из ночной сборки, чтобы разработчикам не приходилось создавать мир.
Мы рассматриваем Nexus и Artifactory. Каковы причины предпочтения одного перед другим? Есть ли другие, о которых нам следует подумать?
maven-2
nexus
artifactory
Джон Штауфер
источник
источник
Ответы:
Я не знаю об Artifactory, но вот причины, по которым я использую Nexus:
источник
Я уверен, что если вы говорите только о хранении двоичных файлов из "
mvn deploy
", оба будут в порядке.Мы очень широко используем Artifactory со всеми обновлениями на этом пути. Множество проектов, множество развернутых снимков и прокси внешних репозиториев. Ни одной проблемы. Мне трудно объяснить, как другие люди испытывают проблемы с его БД, индексированием или чем-то еще. Ничего подобного с нами никогда не случалось. Кроме того, Artifactory позволяет хранить данные на диске и использовать только БД для хранения метаданных, это довольно гибко ( подробнее см. Здесь ).
Что делает эти приложения очень отличаются их подход к интеграции с другими инструментами и технологиями сборки.
Nexus и Sonatype в значительной степени привязаны к Maven и m2eclipse. Они игнорируют все остальное и только недавно начали работать над собственной проприетарной интеграцией Hudson (см. Их веб-семинар по Maven 3 ).РЕДАКТИРОВАТЬ: это больше не так, поскольку в 2017 году Nexus предоставляет гораздо большую поддержку других инструментов сборки. Конец редактирования.Artifactory обеспечивает отличную интеграцию Hudson, TeamCity и Bamboo , а также поддержку Gradle / Ivy . Итак, хотя Nexus ничего не дает вам, когда вы выходите из «зоны комфорта» Sonatype (Maven, m2eclipse), Artifactory объединяет все основные инструменты сборки и сотрудничает со всеми ними.
Фактически, возможность развертывать артефакты сборки из Hudson, когда работа завершена, а не "
mvn deploy
" является огромной разницей: плагин Artifactory Hudson выполняет атомарное развертывание всех артефактов сразу , только когда задание сборки завершено успешно. "mvn deploy
" запускается после каждого модуля и может развернуть частичный набор артефактов, если задание сборки завершится неудачно в середине. Развертывание из Maven по завершении модуля, а не с сервера сборки по завершении задания - действительно плохой поступок.Как видите, Artifactory думает «нестандартно», в то время как Nexus думает «изнутри» и заботится только об артефактах Maven и Maven.
Еще кое-что, что делает Artifactory более доступным, - это их облачное решение Artifactory Online . Примерно за 80 долларов в месяц у вас есть собственный экземпляр Artifactory, вам не нужно выделять для него какой-либо сервер.
Artifactory имеет простой и понятный REST API , не знаю, как он работает для Nexus. Edit Nexus также имеет REST API, которым вы тоже можете легко пользоваться.
Подводя итог, я думаю, что для базового хранения артефактов Maven подходят оба варианта.
Но в то время как Nexus перестает быть строго «менеджером репозитория Maven», Artifactory продолжает и продолжает оставаться общим «хранилищем двоичных файлов» для двоичных файлов любого типа, от любого инструмента сборки и CI-сервера.источник
Artifactory поддерживает оба файловой системы, так и хранилища баз данных. Хранилище основано на контрольной сумме, и идентичные двоичные файлы хранятся только один раз, независимо от того, сколько раз они появляются в репо, что делает Artifactory более эффективным с точки зрения хранения. Перемещение и копирование также очень дешевы из-за этой архитектуры (в Nexus нет REST для перемещения / копирования - вам нужно переместить материал в файловую систему, а затем выполнить корректирующие действия в репо, чтобы сообщить ему об изменении содержимого).
Еще одним важным отличием Artifactory является уникальная интеграция с Hudson и TeamCity для сбора информации о развернутых артефактах, разрешенных зависимостях и данных среды, связанных с запусками сборки, что обеспечивает полную отслеживаемость сборки.
источник
Artifactory хранит артефакты в базе данных, а это означает, что если что-то пойдет не так, все ваши артефакты исчезнут. Nexus использует плоский файл для ваших драгоценных артефактов, поэтому вам не нужно беспокоиться о том, что все они потеряны.
источник
Если вам нужны «профессиональные» функции любого из них (например, промежуточные репозитории, продвижение артефактов, NuGet), тогда вам необходимо рассмотреть различные модели ценообразования, которые отображаются на их веб-сайтах.
В итоге:
Независимо от того, сколько у вас пользователей, Nexus Pro предлагает услугу поддержки, которая в целом эквивалентна "Silver Value Pack" Artifactory за 7 450 долларов в год.
За 7450 долларов в год вы сможете купить примерно 67 мест Nexus Pro (1-50 по 108 долларов, остальные по 120 долларов).
Таким образом, только по цене и поддержке Nexus Pro имеет смысл, пока вы не наберете 67 пользователей, после чего Artifactory станет более дешевым вариантом.
Если вы выполняете всю поддержку самостоятельно; однако этот волшебный момент составляет около 23 пользователей (самая базовая поддержка Artifactory стоит 2750 долларов в год).
источник
Недавно я провел небольшое исследование об Artifactory 2 и Nexus 1.3. Я перечислю здесь основные отличия, которые я обнаружил:
Наиболее полное сравнение: http://binary-repositories-comparison.github.io/
источник
Вы должны использовать Artifactory. Его последняя версия была настоящим скачком. Вы можете постепенно создавать резервные копии своих репозиториев, что означает, что вы можете сохранять и поддерживать все свои артефакты. Он имеет простой в использовании веб-интерфейс и очень прост в настройке, мне очень понравилось проверять вышла новая версия 2.0
источник
С точки зрения учащихся, я отмечаю некоторые специфические различия между ними.
источник
Не говоря уже о политике / религии, для некоторых организаций лицензирование имеет значение.
Nexus - это
GPL,теперьAGPLv3,а теперь Eclipse Public License (EPL) .Artifactory имеет
лицензию ApacheLGPLv3 лицензированной с версии 2.1 продукта.Вы также можете рассмотреть Archiva , просто для сравнения. Это лицензированный Apache 2.0.
источник
Я вижу, что использование Nexus растет, в то время как использование Artifcatory в целом остается неизменным.
Изображение взято отсюда 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, но в платной версии :-(
источник
Хммм ... мой опыт работы с artifactory ужасен ... но я относительно новичок, так что относитесь к этому с недоверием. Моя общая жалоба заключается в том, что файлы jar, недавно загруженные в Artifactory, не индексируются сразу - как в течение нескольких часов - и, похоже, нет хорошего способа принудительно это сделать. Я пробовал разные вещи, которые, казалось, должны были сработать, но не вышло. Я работаю с m2eclipse, добавляя зависимости в проект, который я конвертирую из ant. Когда я пытаюсь добавить банку, которую я только что добавил в artifactory, я ожидаю, что она появится в качестве выбора в селекторе, но это не так.
Коллега сказал мне, что они установили нексус, и пока он им нравится ... но я пока не могу за это поручиться. Я собираюсь установить его на Linux, как только ИТ-специалисты найдут его.
источник