Nexus/ru

From JazzTeamWiki
Jump to: navigation, search

Nexus - это приватный maven репозиторий выполняющий несколько задач.

  • Проксирование библиотек для быстрого доступа к ним (имеет смысл если nexus находится в локальной сети. Библиотеки скачиваются с ранзных репозиториев в nexux единожды, затем хранятся там).
  • Deploy - деплоймент пропатченных или своих библиотек.
  • Releases - релиз библиотек разных версий (обычно релиз репозиторий имеет публичный доступ).

Установка

  • Скачиваем архив с nexus
wget http://nexus/site/lost/release.tar.gz
  • Распаковываем его
tar xvfz release.tar.gz     ;(я предпочитаю хранить nexus в /usr/local/nexus/)
  • Исполняемый скрипт лежит в каталоге
$NEXUS_HOME/nexus.{version}/bin/jsw/{youSystem}/nexus      ;для запуска переходим туда.
  • Скорее всего nexus захочет быть запущенным от имени пользователя ROOT и попросит экспортировать константу
export RUN_AS_USER=root
  • запуск/остановка nexus
sudo ./nexus start|stop 
  • При удачном запуске вы увидите сообщение
Starting Nexus OSS... 
Started Nexus OSS.
  • Nexus будет доступен по адресу
http://youdomen.dom:8081/nexus/
  • По умолчанию login 'n' pass - admin admin123 соответственно.

Настройка и использование

  • Авторизируйтесь в nexus -> перейдите в раздел Users -> создайте нового пользователя с правами allrepositories(reed,view) - назовем его nexus (этот пользователь позволит скачивать библиотеки с репозитория)
  • создайте нового пользователя с правами deployment role - назовем его deployment (этот пользователь позволит делать релизы и снепшоты).
  • Настройка локального maven.
    • Создайте файл ~ users/user/.m2/settings.xml
    • заполните его
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
  <servers>
     <server>
        <id>nexus</id>
        <username>nexus</username>
        <password>********</password>
     </server>
     <server>
        <id>releases</id>
        <username>nexus</username>
        <password>********</password>
     </server>
  </servers>
 
  <mirrors>
     <mirror>
        <id>nexus</id>
        <mirrorOf>*</mirrorOf>
        <url>http://ec2-176-34-64-2.eu-west-1.compute.amazonaws.com:8081/nexus/content/groups/public</url>
     </mirror>
  </mirrors> 
</settings>
  • В разделе servers описаны аккаунты nexus которые связываются по полю id (server nexus связывает mirror nexus, server realeses связывает -DrepositoryId при деплое).

Рзграничение прав доступа.

Nexus имеет гибкую систему ролей, и привилегий.

У пользователя может быть несколько ролей. У роли может быть несколько привилегий.

привилегии представляют собой какой либо элемент nexus + действие (read,delete,update,create,view). Например:

repo: release (read)
repo: release (view)

При создании привилегии мы указываем его имя и сам элемент в nexus

NexusPrivileges.JPG

Создав необходимые роли и привилегии мы можем разграничивать доступ к разным репозиториям.