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 что это. create apt repository. Sonatype nexus что это фото. Sonatype nexus что это-create apt repository. картинка Sonatype nexus что это. картинка create apt repository

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

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

Sonatype nexus что это. apt repo. Sonatype nexus что это фото. Sonatype nexus что это-apt repo. картинка Sonatype nexus что это. картинка apt repo

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

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

Источник

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

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

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

Sonatype nexus что это. image loader. Sonatype nexus что это фото. Sonatype nexus что это-image loader. картинка Sonatype nexus что это. картинка image loader

Введение

Статья не претендует на полноту и отражает лишь базовое решение. В итоге в вашем распоряжении будет установленное ПО для управления артефактами на стороне какого-либо хоста, скрипт для публикации 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 что это. image loader. Sonatype nexus что это фото. Sonatype nexus что это-image loader. картинка Sonatype nexus что это. картинка image loader

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

Sonatype nexus что это. image loader. Sonatype nexus что это фото. Sonatype nexus что это-image loader. картинка Sonatype nexus что это. картинка image loader

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

Sonatype nexus что это. image loader. Sonatype nexus что это фото. Sonatype nexus что это-image loader. картинка Sonatype nexus что это. картинка image loader

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

Sonatype nexus что это. image loader. Sonatype nexus что это фото. Sonatype nexus что это-image loader. картинка Sonatype nexus что это. картинка image loader

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

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

Sonatype nexus что это. image loader. Sonatype nexus что это фото. Sonatype nexus что это-image loader. картинка Sonatype nexus что это. картинка image loader

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

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

Sonatype nexus что это. image loader. Sonatype nexus что это фото. Sonatype nexus что это-image loader. картинка Sonatype nexus что это. картинка image loader

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

Sonatype nexus что это. image loader. Sonatype nexus что это фото. Sonatype nexus что это-image loader. картинка Sonatype nexus что это. картинка image loader

Так как наша цель — приватная работа, то стоит отключить доступ к данным репозиториев для анонимных пользователей, для этого заходим в пользователя » 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 что это. image loader. Sonatype nexus что это фото. Sonatype nexus что это-image loader. картинка Sonatype nexus что это. картинка image loader

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

Sonatype nexus что это. image loader. Sonatype nexus что это фото. Sonatype nexus что это-image loader. картинка Sonatype nexus что это. картинка image loader

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

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

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

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

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

Sonatype nexus что это. image loader. Sonatype nexus что это фото. Sonatype nexus что это-image loader. картинка Sonatype nexus что это. картинка image loader

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

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

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

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

Sonatype nexus что это. image loader. Sonatype nexus что это фото. Sonatype nexus что это-image loader. картинка Sonatype nexus что это. картинка image loader

Sonatype nexus что это. image loader. Sonatype nexus что это фото. Sonatype nexus что это-image loader. картинка Sonatype nexus что это. картинка image loader

Шаг 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 что это. Screenshot 20180927 132201. Sonatype nexus что это фото. Sonatype nexus что это-Screenshot 20180927 132201. картинка Sonatype nexus что это. картинка Screenshot 20180927 132201

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

Sonatype nexus что это. Screenshot 20180927 132952. Sonatype nexus что это фото. Sonatype nexus что это-Screenshot 20180927 132952. картинка Sonatype nexus что это. картинка Screenshot 20180927 132952

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

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

Sonatype nexus что это. Screenshot 20180927 133442. Sonatype nexus что это фото. Sonatype nexus что это-Screenshot 20180927 133442. картинка Sonatype nexus что это. картинка Screenshot 20180927 133442

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

Sonatype nexus что это. Screenshot 20180927 135019. Sonatype nexus что это фото. Sonatype nexus что это-Screenshot 20180927 135019. картинка Sonatype nexus что это. картинка Screenshot 20180927 135019

Sonatype nexus что это. Screenshot 20180927 135051. Sonatype nexus что это фото. Sonatype nexus что это-Screenshot 20180927 135051. картинка Sonatype nexus что это. картинка Screenshot 20180927 135051

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

Sonatype nexus что это. Screenshot 20180927 134015. Sonatype nexus что это фото. Sonatype nexus что это-Screenshot 20180927 134015. картинка Sonatype nexus что это. картинка Screenshot 20180927 134015

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

Источник

Sonatype Nexus

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

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

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

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

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

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

Sonatype nexus что это. scheme 1. Sonatype nexus что это фото. Sonatype nexus что это-scheme 1. картинка Sonatype nexus что это. картинка scheme 1

Особенности

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

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

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

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

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

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

Sonatype nexus что это. scheme 2. Sonatype nexus что это фото. Sonatype nexus что это-scheme 2. картинка Sonatype nexus что это. картинка scheme 2

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

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

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

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

Источник

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

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