How to Deploy Maven Artifacts to CloudRepo via Rultor

The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:

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

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

Хотя AWS весьма надежен и может быть настроен для выполнения всех функций репозитория, есть случаи использования, которые работают “из коробки”, когда вы выбираете полностью управляемое решение, такие как: управление пользователями/группами, специфические для Maven представления, вебхуки, уведомления, доступ и аудит журналы, полностью управляемая безопасность и т. д. Просто говоря, они не просто хранилища JAR-файлов, а Maven-репозитории в облаке.

Полностью управляемое облачное решение будет стоить вам ежемесячную подписку. На момент написания стоимость составляет $9 в месяц и выше. Они бесплатны для открытого исходного кода, но я не вижу причин использовать их, если вы можете использовать Maven Central. Хорошая новость заключается в том, что они предлагают специальную скидку для моих читателей: первые 90 дней бесплатно, вместо стандартных 14. Просто отправьте им письмо, когда ваша учетная запись будет создана, и они позаботятся о вас (не забудьте упомянуть меня, чтобы получить скидку).

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

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

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

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

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

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

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

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

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

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

Translated by ChatGPT gpt-3.5-turbo/42 on 2023-11-22 at 10:03

sixnines availability badge   GitHub stars