Maven Nexus Server einrichten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Registriere dich um viele Vorteile zu genießen! Weniger Werbung, bessere Kommunikation und vieles mehr!

  • In diesem Lexikoneintrag wird gezeigt, wie ihr einen Maven Server auf dem Betriebssystem Linux installieren können, um dort Maven Repositories anzulegen, die ihr in eurem Maven Projekt einbinden könnt. Dazu wird die bekannte Software Nexus verwendet.
    Ich setze hierbei auf die Distribution Debian. Bei anderen Distrubutionen sollte dieser Vorgang ähnlich aussehen.
    Inhalt:

    1. Installationsvorraussetzungen
    2. Installation
    3. Optimierungen

    1. Installationsvorraussetzungen

    Als Grundvorrausetzung gilt, dass Java 7 oder eine höhere Version auf dem Server installiert sein muss.
    Für die Administration des Linux Servers, arbeite ich mit SSH. Ein bekanntes Programm dafür ist Putty oder auch MobaXterm.
    Weil Nexus auch ein Webinterface bereitstellt, wird ebenfalls ein Web-Dienst benötigt. Dabei setze ich auf apache2.

    2. Installation

    Als erstes sollte auf deinem Server ein Verzeichnis angelegt werden, in dem Nexus installiert werden soll.
    Über SSH wird in dieses Verzeichnis gewechselt und die aktuellste Version von Nexus heruntergeladen.

    Quellcode

    1. cd /home/MeinNexusVerzeichnis/ && wget http://www.sonatype.org/downloads/nexus-latest-bundle.tar.gz

    Damit wir mit dem Inhalt des heruntergeladenen Ordners arbeiten können, muss er zuerst entpackt werden.
    Das wird bei Linux-Betriebssystemen so gemacht:

    Quellcode

    1. tar xvzf <Dateiname der verpackten Datei>

    Den Ordner, der in seinem Namen eine Versionsnummer enthält, kannst du einfachhaltshalber in "nexus" umbennen.
    Nun sollten noch ein paar Änderungen am Startscript von Nexus vorgenommen werden.
    Dazu öffnet ihr den Editor eurer Wahl und tragt hinter den Einträgen folgende Paramter ein:

    NEXUS_HOME=”/home/MeinNexusVerzeichnis/nexus” (sollte bei euch angepasst werden, der absolute Pfad zum Ordner von nexus)
    RUN_AS_USER=nexus (kann auch als root-Benutzer laufen, ein eigener Benutzer ist aber immer besser)
    PIDDIR=”/home/MeinNexusVerzeichnis/nexus" (siehe NEXUS_HOME)

    Falls es gewünscht ist, dass der Nexus Server beim Start des Betriebssystems ebenfalls gestartet wird, kann eine Verknüpfung vom Startscript im
    Autostart-Ordner unter /etc/init.d erstellt werden.

    Das ist beispielsweise so möglich:

    Quellcode

    1. ln -L nexus/bin/nexus /etc/init.d/Maven_Server

    Außerdem sollte nicht vergessen werden, dass das Startscript ausführbar und für den Autostart bekannt gemacht werden muss:

    Quellcode

    1. chmod 775 /etc/init.d/Maven_Server && update-rc.d Maven_Server defaults
    Nun kann Nexus entweder durch das Startscript im Autostart oder auch durch das Startscript unter /bin/nexus gestartet werden. Hier muss, falls Nexus mit einem anderen Benutzer laufen soll, auch noch an die benötigten Zugriffsrechte gedacht werden.
    Dann können die Paramter "start", "stop" und "restart" verwendet werden.

    Das Nexus-Webinterface läuft jetzt standardmäßig auf dem Port 8081. Das bedeutet ihr erreicht es unter beispiel.de:8081/nexus.
    Wie ihr diesen Zugriff noch optimieren könnt, zeige ich euch jetzt.

    3. Optimierungen

    Als erstes soll das "/nexus" hinter der Domain entfernt werden.
    Das geschieht in der Datei nexus.properties im Ordner "conf".
    Dazu kann hinter dem Eintrag "nexus-webapp-context-path=" das "/nexus" durch "/" ersetzt werden.
    Nun müssen wir nur noch den Port angeben, um Zugriff auf das Webinterface zu bekommen.

    Jetzt wollen wir aber auch noch den Port einsparen können und stattdessen über eine SubDomain das Webinterface aufrufen.
    Ich werde hierbei die SubDomain maven.beispiel.de verwenden. Wie bereits angesprochen, mache ich das in diesem Beispiel mit den Virtual Hosts von apache2.
    Bevor wir den Virtual Host erstellen, müssen noch zwei Modifikationen von apache2 aktiviert werden: "proxy" und "proxy_http". Das ist so möglich:

    Quellcode

    1. a2enmod <Modifikation>


    Um nun einen neuen Virtual Host anzulegen, wechseln wir in den Ordner /etc/apache2/sites-available und erstellen eine Datei, die ich "Maven_Server.conf" nenne.


    Der Inhalt des Virtual Hosts sieht bei mir so aus:

    Quellcode

    1. ProxyRequests Off
    2. ProxyPreserveHost On
    3. <VirtualHost *:80>
    4. ServerName maven.beispiel.de
    5. ProxyPass / http://localhost:8081/
    6. ProxyPassReverse / http://localhost:8081/
    7. </VirtualHost>


    Damit legen wir einen sogenannten Reverse Proxy an. Um diesen zu aktivieren, verwenden wir

    Quellcode

    1. a2ensite Maven_Server.conf
    Nun sollte es euch möglich sein, über die Domain maven.beispiel.de zu dem Webinterface zu gelangen.

    Einen zweilen Teil zur Konfiguration von Nexus, wie z.B. der Einrichtung eines neuen Benutzers und die Einschränkung des Zugriffs von fremden Benutzern durch ein Passwort, findet ihr hier: Coming Soon

    581 mal gelesen

Kommentare 2

  • Schmidtchen -

    Hej,

    sehr schöner Eintrag und es hat soweit alle geklappt! Ich würde mich sehr über den zweiten Teil freuen, um zu wissen, wie man das Repo dann schützt und so :)

    Schmidtchen

    • Twister21 -

      Danke für die Erinnerung. Das werde ich warscheinlich demnächst auch erstellen.