Maven Repository GitHub

Hosting eines Maven-Repositories auf GitHub

Gut, die erste Frage die Sie sich stellen, könnte schon sein: Weshalb ein Maven-Repository wenn es eh schon genug Maven-Repos im Internet gibt...

Zwei wesentliche Aspekte sind aus meiner Sicht, dass erstens, sehr einfach Bibliotheken für das Team oder für OpenSource-Projekte zur Verfügung gestellt werden können.

Zweitens ist bei der Kombination Git+Maven die Versionsverwaltung dann auch schon inkludiert.

Natürlich könnte man das eigene Maven-Repository auch bei Sonatype oder auf einem eigenen FTP-Server hosten, aber wie gesagt aus meiner Sicht schlägt die Einfachheit von GIT+GitHub+Maven alles andere.

In meinem konkreten Fall hoste ich ein öffentliches Repository auf GitHub und ein privates Repository auf BitBucket...

Voraussetzung

  1. Als erstes benötigen Sie ein Verzeichnis in das Sie Ihr Projekt "deployen" können. In diesem Fall ist das das Verzeichnis public.maven.repository auf einem Netzwerk-Laufwerk.
  2. Legen Sie auf GitHub ein Repository mit dem Namen public.maven.repository an. 
  3. Wechseln Sie in Ihr lokales public.maven.repository Verzeichnis, initialisieren Sie es mit git init, legen Sie auch gleich ein README.md File an, fügen Sie es zum lokalen Git-Repository dazu (git add .) und führen Sie Ihr erstes commit durch. (git commit -am "Initial release")
  4. Folgen Sie den Anweisungen auf Git-Hub - Wichtigstes command:
    git remote add origin <Ihr Repository>
  5. Jetzt machen Sie den ersten "push" zu Git-Hub:
    git push origin master
  6. Überprüfen Sie auf GitHub, ob alles soweit richtig angekommen ist.

Lokales Maven Repository erstellen

Als erstes muss ein lokales Maven-Repository angelegt werden.

Dazu schreiben Sie folgendes an das Ende Ihres POM-Files:

Quelltext:  Alles auswählen
...
    <distributionManagement>
        <repository>
            <id>public.maven.repository</id>
            <name>Public Local Repository</name>
            <url>file:///Volumes/public.maven.repository/</url>
        </repository>
    </distributionManagement>
</project>

Mit 

Quelltext:  Alles auswählen
mvn deploy

werden Ihre Daten im lokalen Repository abgelegt.

Wechseln Sie jetzt wieder in Ihr lokales Maven-Repository (public-maven-repository), und führen Sie folgende Befehle aus, um die neuen Files in das GIT-Repository aufzunehmen. Mit "git push origin" master werden die Files zu GitHub übertragen.

Quelltext:  Alles auswählen
$ cd public.maven.repository/
public.maven.repository $ git add .
public.maven.repository $ git status
public.maven.repository $ git commit -am "New release added to Maven-Repo"
public.maven.repository $ git push origin master
 

git status dient natürlich nur zur Überprüfung, ob auch die gewünschten Files im Git-Repostitory sind.

Fast geschafft

Sie sind fast fertig - die Files befinden sich in der richtigen Form auf GitHub. Jetzt müssen Sie aus Ihrem POM-File nur noch richtig auf das Maven-Repository auf GitHub zugreifen und das funktioniert mit dem folgenden Eintrag im POM-File:

Quelltext:  Alles auswählen
<repositories>
    <repository>
        <id>public.maven.repository</id>
        <name>public.maven.repository on GitHub</name>
<url>https://raw.github.com/IhrAccount/public.maven.repository/master</url>
        <layout>default</layout>
    </repository>
</repositories>
 
<dependencies>
...
Quelltext:  Alles auswählen
$ mvn -U clean install

löst Ihre Abhängigkeiten auf.

Viel Spaß mit Maven und Git.

Sollte Ihnen Maven zu kompliziert erscheinen für die Abhängigkeitsverwaltung, dann könnten Sie es auch so machen wie ich: Verwenden Sie einfach eine Kombination aus ANT + Maven.

Im POM-File werden die Repositories eingetragen, die benötigten JARs usw. und über das ANT-Artifact 

xmlns:artifact="antlib:org.apache.maven.artifact.ant"

stosse ich über ANT die BENÖTIGTEN Maven-Kommandos an - funktioniert traumhaft, ist aber evtl. ein Thema für ein anderes Tutorial...

Zusatz: Template für Ihr README.md File

Machen Sie es den Usern Ihres öffentlichen Repositories möglichst einfach.

Beschreiben Sie die nötigen Settings für das POM-File in Ihrem README.md File.
Es könnte so aussehen - README.md

Wenn Sie sich das File im RAW-Format ansehen, dann können Sie ganz einfach den Markdown-Code kopieren und anpassen.