Sonatype nexus что это

Как создать APT репозиторий в Sonatype Nexus 3?

Авторизуйтесь

Как создать APT репозиторий в Sonatype Nexus 3?

Что такое Sonatype Nexus 3?

Sonatype Nexus 3 — это свободно распространяемый менеджер репозиториев, с удобным web-интерфейсом. Менеджер позволяет создавать репозитории, как для хранения конкретных форматов данных (yum, apt, Maven, Docker, npm, PyPl и так далее), так и формат хранения файлов Raw, в котором можно хранить любые типы файлов.

Менеджер репозиториев можно установить, как на обычную физическую или виртуальную машину, так и развернуть в docker-контейнере. Я разворачивал Nexus в docker-контейнере, поэтому буду описывать, как поднять APT репозиторий именно в docker. Доступные docker-образы Sonatype Nexus 3 можно найти по этой ссылке.

Установка зависимостей

Первое что нужно сделать, это подключиться к docker-контейнеру с оболочкой bash:

После этого нужно установить пакет pinentry, для того, чтобы можно было дальше сгенерировать ключи для apt репозитория:

Генерация ключей

После установки пакета pinentry, можно приступать к созданию ключей:

Заполняем поля, вводим O и нажимаем Enter. Далее нужно будет ввести 2 раза пароль, для генерации ключа. Копируем ID, который был сгенерирован 6C44AA9D06EA1B2E805C90FF6935F7FB57FFEF6F. Создаём открытый ключ:

Создаём закрытый ключ:

Здесь нужно будет ввести пароль, который вводили при генерации ID.

Выводим содержимое файла, который был сгенерирован при создание закрытого ключа. Копируем содержимое файла.

Создание APT репозитория

Заходим в web-интерфейс менеджера репозиториев Nexus http://10.10.1.1:8080. Авторизуемся с правами администратора и нажимаем на шестерёнку вверху. Далее выбираем раздел Repositories. Нажимаем Create repository и выбираем apt(hosted):

Sonatype nexus что это. Смотреть фото Sonatype nexus что это. Смотреть картинку Sonatype nexus что это. Картинка про Sonatype nexus что это. Фото Sonatype nexus что это

Создание APT репозитория

Далее заполняем поля и вставляем в поле Signing Key содержимое из файла private.gpg.key:

Sonatype nexus что это. Смотреть фото Sonatype nexus что это. Смотреть картинку Sonatype nexus что это. Картинка про Sonatype nexus что это. Фото Sonatype nexus что это

Вставляем закрытый ключ

В поле Passphrase вводим пароль, который вводили при генерации ID и закрытого ключа. Нажимаем Create repository. После этого будет создан репозиторий APT, в который можно загружать deb-файлы и подключать к Debian/Ubuntu или подобным ОС.

Источник

Повторное использование приватных Android библиотек с помощью Sonatype Nexus Repository OSS

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

Ниже я предложу простой вариант решения данной проблемы с использованием Sonatype Nexus Repository OSS.

Sonatype nexus что это. Смотреть фото Sonatype nexus что это. Смотреть картинку Sonatype nexus что это. Картинка про Sonatype nexus что это. Фото Sonatype nexus что это

Введение

Статья не претендует на полноту и отражает лишь базовое решение. В итоге в вашем распоряжении будет установленное ПО для управления артефактами на стороне какого-либо хоста, скрипт для публикации Android библиотеки, возможность реализовать зависимости в своём приложении из локального maven репозитория. Возможно, публикации подобного рода уже есть на Хабре, но понятного туториала для Android разработчика я не нашел, что и побудило меня поделиться с вами информацией. Буду рад, если она окажется действительно полезной в работе.

Шаг 1. Подготовка

Для начала необходимо определиться с тем куда устанавливать Nexus. Логично, если это будет сервер, к которому у вас всегда будет доступ при разработке. В данной статье мы будем устанавливать Nexus на тот же хост, на котором ведем разработку. Отличия при установке на сервер будут лишь в ip адресе, по которому мы будем обращаться к репозиториям.

Перед установкой Nexus, нужно скачать и установить JRE. Подойдёт только Oracle JRE и только версии 1.8 (пробовал на 10, но Nexus ругался), это явно указано в документации. Не забудьте добавить в PATH путь к исполняемым файлам JRE.

Далее нужно скачать Nexus с официального сайта. На момент написания статьи это версия 3.12

Шаг 2. Установка и настройка Nexus

Скачанный архив достаточно распаковать там, где вам удобно. После чего можно запускать программу и начинать работать. Для долгосрочного и удобного использования нужно зарегистрировать Nexus как службу и запускать её при старте ОС. Как это сделать — достаточно понятно описано в документации. В нашем же случае достаточно перейти в папку » nexus-3.12/bin/ » и запустить из командной строки файл nexus.

В случае c Windows:

В результате вы должны увидеть оповещение об успешном старте, выглядит оно примерно так:

Sonatype nexus что это. Смотреть фото Sonatype nexus что это. Смотреть картинку Sonatype nexus что это. Картинка про Sonatype nexus что это. Фото Sonatype nexus что это

Пришло время проверить работоспособность Nexus. Для этого достаточно перейти по ссылке http://localhost:8081. Как вы понимаете, в случае с сервером вместо » localhost » нужно указать ip адрес вашего сервера, а Nexus для работы использует порт 8081. Вы увидите такую страницу:

Sonatype nexus что это. Смотреть фото Sonatype nexus что это. Смотреть картинку Sonatype nexus что это. Картинка про Sonatype nexus что это. Фото Sonatype nexus что это

Первым делом нужно авторизоваться, жмём » Sign in » справа вверху и вводим логин ( admin ) и пароль ( admin123 ) администратора. После этого появляется иконка шестеренки, по нажатию на которую мы попадём в настройки.

Sonatype nexus что это. Смотреть фото Sonatype nexus что это. Смотреть картинку Sonatype nexus что это. Картинка про Sonatype nexus что это. Фото Sonatype nexus что это

Но перед тем, как перейти к описанию репозиториев, стоит сделать основные настройки для пользователей. Перейдем в раздел » Roles «.

Sonatype nexus что это. Смотреть фото Sonatype nexus что это. Смотреть картинку Sonatype nexus что это. Картинка про Sonatype nexus что это. Фото Sonatype nexus что это

Помимо роли администратора и анонимного пользователя я предлагаю выделить роли типа » Downloader » — для загрузки зависимостей в проекты, » Contributor » — для отправки библиотек в Nexus.

Жмем «Create role», затем выбираем «Nexus role», вводим данные для «Downloader» как на скрине ниже:

Sonatype nexus что это. Смотреть фото Sonatype nexus что это. Смотреть картинку Sonatype nexus что это. Картинка про Sonatype nexus что это. Фото Sonatype nexus что это

О том, какие привилегии за что отвечают — подробно описано в документации. Нам нужно выбрать привилегию с флагом » repository-view » (отвечает за работу с данными именно репозиториев), привилегия должна также давать право на чтение данных репозитория, это флаг » read «, и так как в Android мы работаем с maven репозиториями, то стоит остановиться на флаге » maven2 «, чтобы не давать пользователю работать с другими типами репозиториев. Жмём » Create role «.

По аналогии создаем роль » Contributor «. Разница лишь в том, что право чтения унаследуем от роли » Downloader » (настройка в нижней части страницы), а руками дадим привилегии на редактирование, добавление артефактов в репозитории, а также на просмотр данных репозиториев через web интерфейс.

Sonatype nexus что это. Смотреть фото Sonatype nexus что это. Смотреть картинку Sonatype nexus что это. Картинка про Sonatype nexus что это. Фото Sonatype nexus что это

Далее создадим пользователей, которым назначим настроенные роли. Заходим в раздел » Users » (в левой части окна) и нажимаем » Create local user «. Для проверки можно задать пароли аналогичные стандартному паролю админа, то есть » downloader123 » и » contributor123 «. Образец заполнения на скрине:

Sonatype nexus что это. Смотреть фото Sonatype nexus что это. Смотреть картинку Sonatype nexus что это. Картинка про Sonatype nexus что это. Фото Sonatype nexus что это

Так как наша цель — приватная работа, то стоит отключить доступ к данным репозиториев для анонимных пользователей, для этого заходим в пользователя » anonimous » и меняем его статус с » Active » на » Disabled «. В этом случае нельзя будет анонимно получить зависимости в Android проекте, а только с указанием определенного пользователя и пароля, но скачивать данные через web интерфейс всё ещё будет возможно.

Для того, чтобы запретить просматривать содержимое репозиториев через web интерфейс анонимным пользователям — перейдём в раздел » Anonimous » и снимем флаг с опции » Allow anonymous users to access the server «. Не забудьте сохранить изменения.

Остался последний этап — настройка репозиториев. Переходим в раздел » Repositories » и видим там созданные по умолчанию репозитории. Среди них есть репозитории » maven2 «, если присмотреться, то можно увидеть разные типы: «proxy», «group», «hosted». «Proxy» репозиторий просто пробрасывает при обращении к себе пользователя на другой репозиторий, в случае с преднастроенным » maven-central » это отсылка на https://repo1.maven.org/maven2/, «group» может включать в себя несколько репозиториев, а «hosted» — это уже конкретный репозиторий, хранящийся в Nexus. Они-то нам сейчас и пригодятся.

Создадим репозитории для «Release» и «Snapshot» версий артефактов. Жмем » Create repository «, выбираем » maven2 (hosted) «. Первый репозиторий назовём «android» и просто сохраним не меняя настройки:

Sonatype nexus что это. Смотреть фото Sonatype nexus что это. Смотреть картинку Sonatype nexus что это. Картинка про Sonatype nexus что это. Фото Sonatype nexus что это

Второй репозиторий назовём «android_snapshot», поменяем » Version policy » на «Spapshot» и » Deployment policy » на «Allow redeploy».

Sonatype nexus что это. Смотреть фото Sonatype nexus что это. Смотреть картинку Sonatype nexus что это. Картинка про Sonatype nexus что это. Фото Sonatype nexus что это

Если не понятно на что это влияет — можно прочитать здесь. Фактически для репозитория «android» будет недоступна возможность загрузить повторно одну и ту же версию библиотеки, это привычное поведение при общении, например, с maven-central. Для репозитория «android_snapshot» наименование версии обязательно должно будет оканчиваться на «SNAPSHOT» и будет доступна загрузка одной и той же версии повторно.

Также обратите внимание на то, что в списке репозиториев есть колонка «URL» с кнопками «Copy», эти ссылки понадобятся нам в дальнейшем для доступа к репозиториям из проектов.

Поздравляю! Базовая настройка Nexus сделана, пора приступить к созданию и публикации библиотеки.

Шаг 3. Создание и публикация Android библиотеки

Создаём Android проект, назовём его «TestLibrary». Далее в «Project View» нажимаем на корень проекта правой кнопкой мыши выбираем «New» и «Module». В открывшемся окне выбираем «Android library» и называем библиотеку «HelloLibrary». В итоге вы увидите рядом с модулем «app» модуль нашей новой библиотеки.

Sonatype nexus что это. Смотреть фото Sonatype nexus что это. Смотреть картинку Sonatype nexus что это. Картинка про Sonatype nexus что это. Фото Sonatype nexus что это

Добавим в библиотеку класс с функцией приветствия:

Библиотека готова, пора публиковать. В «Project view» в модуль «hellolibrary» добавляем файл и называем его «publisher.gradle». В нём будет храниться скрипт для публикации библиотеки.

Далее переходим в «build.gradle» нашей библиотеки, применяем к нему наш publisher и очищаем от лишних зависимостей:

Теперь можем публиковать, просто выполнив задание » publishAndroidLibraryPublicationToMavenRepository «.

Sonatype nexus что это. Смотреть фото Sonatype nexus что это. Смотреть картинку Sonatype nexus что это. Картинка про Sonatype nexus что это. Фото Sonatype nexus что это

Sonatype nexus что это. Смотреть фото Sonatype nexus что это. Смотреть картинку Sonatype nexus что это. Картинка про Sonatype nexus что это. Фото Sonatype nexus что это

Шаг 4. Использование зависимостей из Nexus

Для теста предлагаю создать ещё один пустой Android проект.

Для начала подключим репозиторий к проекту, просто добавив данные в «build.gradle» файл уровня проекта:

А теперь как и с любой другой библиотекой получим зависимость на нашу «hellolibrary» через implementation в «build.gradle» файле уровня «app».

Теперь вы можете вызвать функцию helloFromOurLibrary() в своём Android проекте и протестировать работоспособность всей схемы. Поздравляю!

Резюме

Теперь у вас есть возможность повторно использовать приватные Android библиотеки в проектах. Жду замечаний!

Надеюсь вы не зря потратили своё время, спасибо!

Источник

В чем разница между Nexus и Maven?

Nexus управляет программными «артефактами», необходимыми для разработки. Если вы разрабатываете программное обеспечение, ваши сборки могут загружать зависимости из Nexus и публиковать артефакты в Nexus, создавая новый способ обмена артефактами внутри организации. Хотя центральный репозиторий всегда служил большим удобством для разработчиков, вам не следует обращаться к нему напрямую. Вы должны проксировать Central с Nexus и поддерживать свои собственные репозитории, чтобы обеспечить стабильность в вашей организации. С помощью Nexus вы можете полностью контролировать доступ и развертывание каждого артефакта в вашей организации из одного места.

А вот цитата из « Maven и Nexus Pro, созданные друг для друга », объясняющая, как Maven использует репозитории:

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

Итак, если вы хотите использовать оба, у вас будет репозиторий, управляемый Nexus, и Maven получит доступ к этому репозиторию.

Источник

Nexus: установка, запуск, деплой в репозиторий + NGINX и SSL

У Android-команды поломался “деплой” через отправку письма с вложением на Gmail (было сделано ещё до меня), и появилась необходимость быстренько “накостылить” репозиторий.

Планировался он давно, но сейчас будет без всякой автоматизации – просто руками поднять, запустить, что бы они могли деплоить.

Запуск Nexus из Docker

Обновляем систему, устанавливаем NGINX, и пока его стопаем:

Делаем тестовый запуск Nexus:

Sonatype nexus что это. Смотреть фото Sonatype nexus что это. Смотреть картинку Sonatype nexus что это. Картинка про Sonatype nexus что это. Фото Sonatype nexus что это

Дефолтный логин-пасс – admin:admin123, можно зайти, посмотреть как всё выглядит под админом:

Sonatype nexus что это. Смотреть фото Sonatype nexus что это. Смотреть картинку Sonatype nexus что это. Картинка про Sonatype nexus что это. Фото Sonatype nexus что это

Добавление репозитория

Добавляем репозиторий – переходим в Repositories:

Sonatype nexus что это. Смотреть фото Sonatype nexus что это. Смотреть картинку Sonatype nexus что это. Картинка про Sonatype nexus что это. Фото Sonatype nexus что это

Кликаем Create repository, выбираем raw(hosted) (см. описание тут>>>):

Sonatype nexus что это. Смотреть фото Sonatype nexus что это. Смотреть картинку Sonatype nexus что это. Картинка про Sonatype nexus что это. Фото Sonatype nexus что это

Sonatype nexus что это. Смотреть фото Sonatype nexus что это. Смотреть картинку Sonatype nexus что это. Картинка про Sonatype nexus что это. Фото Sonatype nexus что это

Попробуем в него загрузить файл.

Sonatype nexus что это. Смотреть фото Sonatype nexus что это. Смотреть картинку Sonatype nexus что это. Картинка про Sonatype nexus что это. Фото Sonatype nexus что это

Выбираем POST /v1/components, жмём Try it out, указываем что и куда будем загружать, нам тут интересен Request URL:

Источник

Sonatype Nexus

Менеджер репозиториев для локального хранения и управления артефактами, зависимостями и Docker-образами.

подходящих зависимостей на старте проекта.

зависимостей на уязвимости перед вводом новых
компонентов в цепочку разработки.

Какие бизнес-задачи можно решать

Снижение рисков финансовых и репутационных потерь при возможной компрометации данных и\или остановке сервисов из-за взлома приложений через уязвимые сторонние компоненты.

Sonatype Nexus позволяет проксировать, собирать и управлять зависимостями без постоянного обращения к внешним хранилищам бинарных JAR-артефактов.

Sonatype nexus что это. Смотреть фото Sonatype nexus что это. Смотреть картинку Sonatype nexus что это. Картинка про Sonatype nexus что это. Фото Sonatype nexus что это

Особенности

Выбор подходящих зависимостей на старте проекта

Жизненный цикл Nexus позволяет в режиме реального времени получить представление о качестве компонентов и принять оптимальное решение о том, какие зависимости включать в ваши приложения.

Внутренние инструменты для обеспечения безопасности разработки

Контроль качества исходников

Богатый и гибкий механизм настройки политик

Проверка зависимостей на уязвимости перед вводом новых компонентов в цепочку разработки

Sonatype nexus что это. Смотреть фото Sonatype nexus что это. Смотреть картинку Sonatype nexus что это. Картинка про Sonatype nexus что это. Фото Sonatype nexus что это

Точная информация по
использованию зависимостей
с подробными отчетами

Нужна помощь или совет?

У вас есть вопрос? Не уверены что именно вам нужно? Вам необходимо независимое экспертное мнение по информационной безопасности в бизнес терминах?

В рамках бесплатной 30-минутной консультации, ответим на любые ваши вопросы

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *