Eigenes Maven Repository mit FTP einrichten

Eigenes Maven Repository

Ein eigenes Maven Repository

Das Build-Management-Tool Maven ist heutzutage einer der Standards in der Java Softwareentwicklung und unterstützt Entwickler von der Anlage eines Softwareprojekts über das Kompilieren, Testen und „Packen“ bis zum Verteilen der Software. Wenn eigene Projekte nicht öffentlich zugänglich gemacht werden sollen, gibt es eine einfache Möglichkeit ein eigenes Maven Repository einzurichten.

Lediglich ein Web-Server, auf welchen man Zugriff hat, um Dateien hochzuladen, wird benötigt. Maven unterstützt etliche Protokolle wie FTP, SCP, WebDav usw. Im Folgenden wird die einfachste Methode vorgestellt, mit guten alten FTP …

Web Space

Zunächst benötigt man einen Webspace, auf welchem sich die künftigen Maven Repositories befinden sollen. Im weiteren Beispiel wird diese als http://www.beispielseite.com bezeichnet. Mit einem beliebigen FTP-Client kann nun beispielsweise eine Verbindung zu ftp://ftp.beispielseite.com aufgebaut werden. Als Beispiel wird ein Ordner maven2 im Verzeichnis public_html erstellt.

Im Grunde wurde somit das erste eigene Maven Repository erstellt. Wenn nun http://www.beispielseite.com/maven2 mit einem Web Browser aufgerufen wird, sollte eine Verzeichnisauflistung zu sehen sein. Ist dies nicht der Fall gibt es mehrere Optionen, je nachdem um welche Webserver-Software es sich handelt:

Apache

Option 1: Konfiguration
Die Datei /etc/apache2/apache2.conf wird mit einem Texteditor geöffnet und folgende Zeilen hinzugefügt:

<Directory /var/www/beispielseite.com/maven2>
     Options Indexes FollowSymLinks
</Directory>

Option 2: .htaccess Datei
Man öffnet die .htaccess und fügt folgende Zeile hinzu, sofern der .htaccess Support aktiviert ist (man achte auf den Abstand vor dem Plus):

Options +Indexes

Nginx

In die nginx Konfigurationsdatei unter /etc/nginx/nginx.conf wird folgendes eingefügt

location /maven2{
     autoindex on;
}

Project Deployment

Nun ist alles vorbereitet, um das erste Projekt zum neu erstellten Maven Repository hinzuzufügen. In der pom.xml des Maven Projektes, welches zum Repository hinzugefügt werden soll, müssen zwei neue Tags hinzugefügt werden.

Zum ersten der extension-Tag, welcher das Plugin für den FTP Upload erlaubt.

<extensions>
  <extension>
    <groupId>org.apache.maven.wagon</groupId>
    <artifactId>wagon-ftp</artifactId>
    <version>2.9</version>
  </extension>
</extensions>

Zum zweiten der distributionManagement-Tag, wodurch das Ziel des Projektes definiert wird.

<distributionManagement>
  <repository>
   <id>beispiel-ftp</id>
   <url>ftp://ftp.beispielseite.com/public_html/maven2</url>
 </repository>
</distributionManagement>

Server Zugang

Zwar wird in der pom.xml die Adresse des FTP-Servers angegeben, jedoch ist es nicht empfehlenswert, die Zugangsdaten wie Benutzername und Passwort auch dort anzugeben. Diese werden in der Maven Konfigurationsdatei settings.xml definiert, damit sie privat bleiben. Der Pfad zu dieser ist typischer Weise C:\Users\<Benutzername>\.m2\settings.xml unter Windows und $HOME/.m2/settings.xml unter Linux.  Möglicherweise muss die Datei erst erstellt werden, wenn sie nicht vorhanden ist. Auf der offiziellen Maven Webseite können dazu weitere Informationen gefunden werden. Wurde diese erstellt oder sollte sie bereits vorhanden sein, werden folgende Zeilen hinzugefügt:

<servers>
  <server>
    <id>beispiel-ftp</id>
    <username>user1</username>
    <password>pass</password>
  </server>
</servers>

Dabei ist zu beachten, dass die ID im id-Tag dieselbe ist, wie zuvor in der pom.xml Datei. Wie zu sehen ist, wird das Password im Klartext angegeben. Es empfiehlt sich ein Master-Password anzulegen, wie es in der Maven Password Encryption beschrieben wird.

Deploy

Innerhalb eines Projekt-Ordners, welcher zukünftig auf dem Repository Einsatz finden soll kann nun folgender Befehlt ausgeführt werden:

mvn deploy

Maven baut das Projekt und lädt es in das private Repository, also auf den FTP Server. Würde man nun mit einem Web Browser einen Blick auf http://www.beispielseite.com/maven2/com/beispiel/projekt/1.0-SNAPSHOT werfen, würde man die JAR und P OM Dateien des Projektes finden.

Das eigene Maven Repository

Nun kann das eigene Repository in ein Projekt eingebunden werden. Dazu wird folgender dependency-Tag und repository-Tag angegeben:

<dependencies>
  ...
  <dependency>
    <groupId>com.beispiel</groupId>
    <artifactId>projekt</artifactId>
    <version>1.0-SNAPSHOT</version>
  </dependency>
  ...
</dependencies>
...
<repositories>
  ...
  <repository>
    <id>beispiel-mvn</id>
    <name>Beispiel Repository</name>
    <url>http://www.example.net/maven2</url>
  </repository>
  ...
</repositories>

Der repository-Tag ist notwendig, da das Repository ist nicht auf der Liste der „zentralen“ Repositories zu finden ist, welche Maven standardmäßig durchsucht. Wenn ein Projekt eine stabile Version hat, welche häufig Verwendung findet, dann lohnt sich die Mühe, um es in das zentrale Maven Repository zu bekommen. Dies ist einfacher, wenn man bereits über ein persönlichen Repository verfügt, um darauf hinzuweisen. Zu beachten ist jedoch, dass das zentrale Repository weder Snapshot-Releases akzeptiert, noch Änderungen an der Freigabe, sobald sie erstmal hochgeladen wurden.

Tagged with:     , ,

About the author /


Einst gelernter Werkzeugbautechniker, habe ich vor etlichen Jahren mein Leben der Informatik verschrieben. Zur Zeit studiere ich noch Informatik auf der Fachhochschule Technikum Wien und beschäftige mich am liebsten mit Java, Android und Elektronik.

Related Articles

Post your comments

Your email address will not be published. Required fields are marked *

*

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden .

Unterstütz uns!

Folgt uns!

Diese Seite

wurde erstellt mit Ehrgeiz, Liebe und viel Koffein. Bei der Erstellung kamen keine jar-Dateien zu Schaden. Das Logo wurde erstellt von Star-seven.at.