Подтвердить что ты не робот

Может ли Nexus или Artifactory хранить простые артефакты tar.gz?

У меня есть облачные серверы, расположенные в отдельных центрах обработки данных по всему миру. Каждый центр обработки данных отделен от других.

Я ищу простой способ развернуть артефакты на отдельные кластеры серверов (которые могут работать с различными версиями программного обеспечения, например, dev, test и производственного кластера) в каждом из этих регионов с легкостью и согласованностью. Мне кажется, что сервер артефактов - это то, что мне нужно, потому что я могу выполнить установку script на облачном сервере, которая вытаскивает правильный артефакт программного обеспечения.

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

  • Сценарии оболочки
  • Скрипты Python
  • Кукольные манифесты
  • Файлы Debian (часто поставляются в виде файла tar.gz из нескольких debian)

Может ли Nexus или Artifactory управлять всеми этими типами пакетов, или я должен смотреть в другом направлении? Я не против добавления файлов make в мои оболочки script проектов, которые просто генерируют файлы tar.gz. Я просто не хочу идти по пути создания репозитория артефактов, когда, в конечном счете, небольшой скрипт, wget и сервер Apache будут работать нормально.

4b9b3361

Ответ 1

Оба Artifactory и Nexus могут обрабатывать файлы любого типа, так как оба они "Менеджеры двоичных репозиториев" .

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

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

Для бинарников нужен специализированный менеджер, и хотя сетевые ресурсы/серверы SCM/файловые серверы кажутся жизнеспособным вариантом в начале; они просто не масштабируются.

Также см. мой ответ на аналогичный вопрос для некоторых преимуществ менеджера по сравнению с другими ad-hoc решениями.

Ответ 2

Да, вы можете загружать файлы, не содержащие jar. Например:

mvn deploy:deploy-file -DgroupId=org.group.id -DartifactId=artifact-id -Dversion=0.0.0.1-SNAPSHOT -Dpackaging=tar.gz -DrepositoryId=repository-id -Durl=http://url -Dfile=localfile-0.0.0.1-SNAPSHOT.tar.gz

Новые версии Nexus будут обрабатывать определенные файлы, такие как tar, swf и другие, путем проверки правильности их формирования. Это может привести к неожиданному или нежелательному поведению.

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

refs:

fooobar.com/questions/260358/...

http://betterlogic.com/roger/2012/04/mavennexus-upload-tgztar-gz-file/

Ответ 4

Вы можете (см. другие ответы). Вы также можете ссылаться на них, например, так (хотя пример будет приятным):

Вы можете ссылаться на/использовать их как этот плагин:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
      <execution>
        <id>copy</id>
        <phase>package</phase>
        <goals>
          <goal>copy</goal>
        </goals>
        <configuration>
          <artifactItems>
            <artifactItem>
              <groupId>org.apache</groupId>
              <artifactId>activemq-distro</artifactId>
              <version>5.7.0</version>
              <type>gz</type>
              <overWrite>true</overWrite>
              <outputDirectory>${project.build.directory}</outputDirectory>
            </artifactItem>
          </artifactItems>
          <!-- other configurations here -->
        </configuration>
      </execution>
    </executions>
  </plugin>