Статьи

Как развернуть артефакты Maven в CloudRepo через Rultor

В моей предыдущей статье я описал, как настроить частный репозиторий Maven в Amazon S3 и развернуть его через Rultor . Это отличное решение, если вы знакомы с управлением Amazon Web Services (AWS), S3 и AWS Identity and Access Management (IAM) . Однако, если вам неудобно администрировать учетную запись AWS и все связанные разрешения, вы можете вместо этого сохранить свои артефакты Apache Maven в каком-либо облачном диспетчере хранилища. Вот как вы заставляете Rultor развертывать ваши зависимости Maven в CloudRepo . Я написал этот пост вместе с Крисом Шелленбаргером , их основателем.

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

Несмотря на то, что AWS достаточно надежен и может быть настроен на все, что может делать менеджер хранилища, существуют варианты использования, которые работают прямо из коробки при выборе полностью управляемого решения, такие как: Администрирование пользователей / групп, Определенные виды Maven, Webhooks, Уведомления Журналы доступа и аудита, Полностью управляемая безопасность и т. Д. Проще говоря, они не просто хранилища файлов JAR, но хранилища Maven в облаке.

Развертывание артефактов Maven

Предполагая, что вы создали учетную запись в CloudRepo и настроили как пользовательский, так и maven репозиторий , для развертывания в CloudRepo необходимо выполнить два шага на стороне клиента: 1) настроить файл settings.xml с учетными данными и 2) добавить свой репозиторий в ваш pom.xml раздел <distributionManagement> файла.

Расположение по умолчанию для файла settings.xml находится в каталоге ~/.m2 . Отредактируйте этот файл и убедитесь, что у вас есть запись <server> как показано ниже:

1
2
3
4
5
6
7
8
9
<settings>
  <servers>
    <server>
      <id>io.cloudrepo</id>
      <username>yegor256@gmail.com</username>
      <password>my-secret</password>
    </server>
  </servers>
</settings>

Объявив server и указав id , вы можете ссылаться на id из ваших файлов POM Maven. Когда Maven пытается выполнить аутентификацию на сервере, он ищет соответствующий ключ в файле settings.xml .

Если вы беспокоитесь о сохранении пароля в текстовом формате в вашей файловой системе, проверьте, как Maven рекомендует это исправить.

Теперь, когда ваши учетные данные установлены, вы должны указать свой pom.xml в вашем репозитории CloudRepo. Добавьте новый элемент <repository> в раздел <distributionManagement> (для их загрузки) вашего pom.xml и в <repositories> (для их загрузки):

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
<project>
  [...]
  <repositories>
    <repository>
      <id>io.cloudrepo</id>
      <url>https://[your-org-name].mycloudrepo.io/repositories/[your-repository-name]</url>
    </repository>
  </repositories>
  [...]
  <distributionManagement>
    <repository>
      <id>io.cloudrepo</id>
      <name>CloudRepo Maven Repository</name>
      <url>https://[your-org-name].mycloudrepo.io/repositories/[your-repository-name]</url>
    </repository>
  </distributionManagement>
</project>

Если у вас есть сборка, работающая в вашей локальной среде, вам необходимо развернуть ее в рабочей среде с помощью Rultor. Во-первых, вам нужно хранить свои учетные данные в Git, чтобы Rultor мог получить к ним доступ во время сборки и развертывания. Однако очень важно никогда не сохранять свои учетные данные в виде открытого текста в системе управления версиями (замените имя вашего проекта GitHub на my/project ):

1
2
$ gem install rultor
$ rultor encrypt -p my/project settings.xml

Это создает зашифрованную версию вашего файла настроек с именем settings.xml.asc . Добавьте этот файл в корневой каталог вашего проекта, затем подтвердите и нажмите. Это безопасно. Только Rultor имеет ключи для расшифровки этого файла, поэтому даже если ваш исходный код открыт для других, ваши учетные данные будут в безопасности.

Чтобы включить Rultor, добавьте файл .rultor.yml в корневой каталог вашего проекта со следующим содержимым:

1
2
3
4
5
decrypt:
  settings.xml: "repo/settings.xml.asc"
deploy:
  script: |
    mvn clean deploy --settings ../settings.xml

Для получения дополнительной информации о файле .rultor.yml проверьте страницу справки Rultor .

Теперь, когда все настроено, вы сможете развернуть в CloudRepo с помощью Rultor, выполнив команду @rultor deploy . Дождитесь ответа и Рултор позаботится обо всем остальном.

Это оно!

Опубликовано на Java Code Geeks с разрешения Егора Бугаенко, партнера нашей программы JCG . См. Оригинальную статью здесь: Как развернуть артефакты Maven в CloudRepo через Rultor

Мнения, высказанные участниками Java Code Geeks, являются их собственными.