В чем смысл Artifactory или Nexus и как я могу их использовать?

Изучая инструменты CI, я обнаружил, что многие установки CI также интегрируются с репозиториями артефактов, такими как SonaType Nexus и JFrog Artifactory.

Эти инструменты кажутся тесно интегрированными с Maven. Мы не используем Maven и даже не компилируем Java. Мы компилируем C++, используя Qt/qmake/make, и эта сборка работает очень хорошо для нас. Мы все еще изучаем инструменты CI.

В чем смысл использования репозитория Artifact?

Является ли архивирование в Nexus или Artifactory (или Archiva) шагом в нашей цепочке создания или частью цепочки CI, или может быть и тем, и другим?

Как я могу заставить наши сборки make или сценарии perl/bash/batch взаимодействовать с ними?


person macetw    schedule 10.05.2013    source источник
comment
@SLaks Это туфта. Менеджеры бинарных репозиториев хороши для всех разработчиков, которые создают или потребляют бинарные файлы; будь то JAR, WAR, Deb, RPM, DLL и т. д.   -  person noamt    schedule 10.05.2013
comment
Эта ссылка может оказаться полезной: docs.codehaus.org/display /MAVEUSER/   -  person sorin    schedule 08.04.2015


Ответы (2)


Репозиторий артефактов имеет несколько целей. Основная цель состоит в том, чтобы иметь копию maven Central (или любого другого репозитория maven), чтобы иметь более быстрое время загрузки, и вы можете использовать maven, даже если Интернет не работает. Поскольку вы не используете maven, это не имеет значения для вас.

Вторая цель - хранить в нем файлы, которые вы хотите использовать в качестве зависимости, но не можете бесплатно скачать из Интернета. Таким образом, вы покупаете их или получаете от своих поставщиков и помещаете в свой репозиторий. Это также более применимо к пользователю maven и механизму зависимости.

Третья важная цель — иметь централизованный способ хранения релизов. Поэтому, если вы создаете выпуск v1.0, вы можете загрузить его в такой репозиторий, и благодаря чистому способу именования в maven довольно легко узнать, как найти v1.0 и использовать его со всеми другими инструментами. Таким образом, вы можете написать скрипт, который загружает ваш выпуск с помощью wget и устанавливает его на хост.

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

Их легко интегрировать с проектами Maven, и они представляют собой множество других фреймворков инструментов сборки, которые легко подключить к ним, например, ant ivy, groovy wine и так далее. Из-за схемы именования нет ограничений на использование bash или perl для загрузки/выгрузки файлов из него.

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

person mszalbach    schedule 10.05.2013
comment
И Artifactory, и Nexus поддерживают двоичные файлы Java как двоичные файлы .NET, а также Debs и RPM. - person noamt; 10.05.2013
comment
Я действительно не согласен с утверждением. Но они предназначены для лучшей работы с проектами Maven и потребностями зависимостей Maven. Хотя это верно для Nexus, Artifactory действительно не зависит от инструментов сборки и технологий и отлично работает практически с любым инструментом сборки и сервером сборки, позволяя пользователю контролировать расположение артефактов. Он также имеет встроенные средства для Gradle, Ivy, P2, .NET, RPM и т. д. - person JBaruch; 12.05.2013
comment
Я немного изменил текст, чтобы было более понятно, что вы можете использовать их практически со всем, и что многие инструменты имеют встроенное подключение к репозиторию артефактов. Заявление было основано на том факте, что большинство инструментов не читают settings.xml maven и нуждаются в специальном файле настроек для подключения к вашему репозиторию. Однако это не имеет значения, потому что maven вообще не используется в вопросе, а для bash/perl конфигурация должна быть выполнена в любом случае. Поэтому я удалил его. - person mszalbach; 12.05.2013
comment
@JBaruch Nexus поддерживает репозитории Gradle, Ivy, P2, OBR, .net, RPM, как вы хорошо знаете... - person Manfred Moser; 12.05.2013
comment
@ManfredMoser Gradle и Ivy в их родной раскладке? - person JBaruch; 12.05.2013
comment
Нет... но в формате репозитория Maven, который отлично работает для Gradle/Ivy и на самом деле является наиболее часто используемым. - person Manfred Moser; 14.05.2013
comment
он обычно используется не потому, что он хорош, а потому, что центральный по популярности. популярный != лучший. - person JBaruch; 19.05.2013
comment
Обязательно к прочтению: docs.codehaus.org/display/MAVENUSER/ - person sorin; 08.04.2015