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