Projekte in Maven Central verfügbar machen

Auszug in die weite Welt

Christian Robert


Kaum ein größeres Java-Projekt kommt heutzutage ohne Open-Source-Frameworks oder Libraries aus. Ob es nun große Abhängigkeiten wie das Spring Framework oder kleine, aber dennoch nützliche Hilfsmittel wie slf4j oder JUnit sind – Frameworks und Libraries bestimmen auch in Enterprise-Anwendungen die Landschaft. Spätestens seit dem Siegeszug von Apache Maven gilt auch die Herausforderung, eben jene Abhängigkeiten im eigenen Projekt (inklusive der Abhängigkeiten von Abhängigkeiten) auf dem aktuellen Stand zu halten, als gelöst.

Hinter den Kulissen verwenden hierfür eigentlich alle Java-Build-Frameworks Maven Central [1] als Quelle für die benötigten Artefakte. In der Praxis läuft dies nahezu unbemerkt und fehlerfrei.

Interessant wird es dann, wenn man das eigene Open-Source-Projekt ebenfalls über Maven Central verfügbar machen möchte. Hier gibt es keinen einfachen Uploadbutton, das heißt, wir müssen zur Veröffentlichung einen anderen Weg gehen.

Als Beispielprojekt, an dem wir die notwendigen Schritte deutlich machen wollen, dient das Projekt devlauncher des Autors, das auf GitHub zur Verfügung steht [2].

Maven Central

Maven Central, die Standardanlaufstelle für alle Artefakte, die von Java-Build-Frameworks wie Apache Maven, aber auch von Apache Ivy, Gradle und anderen Produkten durchsucht wird, erlaubt kein direktes Bereitstellen von Inhalten. Stattdessen müssen neue Versionen von Artefakten zunächst in „Zuliefer-Repositories“ eingestellt werden, aus denen sie anschließend nach Maven Central synchronisiert werden.

Die Maven-Central-Dokumentation [3] listet diese Repositories auf. Für unser Beispiel verwenden wir als Zuliefer-Repository, in das wir unsere Artefakte einstellen werden, das Sonatype OSS Repository [4].

Vorbereitung der pom.xml

Alle Projekte, die über Mavel Central ausgeliefert werden, müssen spezielle Voraussetzungen erfüllen und klar definierte Metainformationen in ihrer pom.xml-Datei bereitstellen.

Hinweis: Sonatype bietet ein Maven-Parent-Projekt an, das in der entsprechenden Dokumentation [5] referenziert wird. Aufgrund von Problemen beim nicht interaktiven Modus sowie der für dieses Beispiel erwünschten expliziten Darstellung dessen, was „hinter den Kulissen“ abläuft, wird hier darauf verzichtet, dieses Parent-Projekt zu verwenden.

Zunächst müssen wir sicherstellen, dass die Standard-Maven-Metainformationen vollständig vorhanden sind (Listing 1).

Listing 1: Metaangaben in pom.xml Launcher application for Web Applications

Projekte in Maven Central verfügbar machen

Auszug in die weite Welt

Christian Robert


Kaum ein größeres Java-Projekt kommt heutzutage ohne Open-Source-Frameworks oder Libraries aus. Ob es nun große Abhängigkeiten wie das Spring Framework oder kleine, aber dennoch nützliche Hilfsmittel wie slf4j oder JUnit sind – Frameworks und Libraries bestimmen auch in Enterprise-Anwendungen die Landschaft. Spätestens seit dem Siegeszug von Apache Maven gilt auch die Herausforderung, eben jene Abhängigkeiten im eigenen Projekt (inklusive der Abhängigkeiten von Abhängigkeiten) auf dem aktuellen Stand zu halten, als gelöst.

Hinter den Kulissen verwenden hierfür eigentlich alle Java-Build-Frameworks Maven Central [1] als Quelle für die benötigten Artefakte. In der Praxis läuft dies nahezu unbemerkt und fehlerfrei.

Interessant wird es dann, wenn man das eigene Open-Source-Projekt ebenfalls über Maven Central verfügbar machen möchte. Hier gibt es keinen einfachen Uploadbutton, das heißt, wir müssen zur Veröffentlichung einen anderen Weg gehen.

Als Beispielprojekt, an dem wir die notwendigen Schritte deutlich machen wollen, dient das Projekt devlauncher des Autors, das auf GitHub zur Verfügung steht [2].

Maven Central

Maven Central, die Standardanlaufstelle für alle Artefakte, die von Java-Build-Frameworks wie Apache Maven, aber auch von Apache Ivy, Gradle und anderen Produkten durchsucht wird, erlaubt kein direktes Bereitstellen von Inhalten. Stattdessen müssen neue Versionen von Artefakten zunächst in „Zuliefer-Repositories“ eingestellt werden, aus denen sie anschließend nach Maven Central synchronisiert werden.

Die Maven-Central-Dokumentation [3] listet diese Repositories auf. Für unser Beispiel verwenden wir als Zuliefer-Repository, in das wir unsere Artefakte einstellen werden, das Sonatype OSS Repository [4].

Vorbereitung der pom.xml

Alle Projekte, die über Mavel Central ausgeliefert werden, müssen spezielle Voraussetzungen erfüllen und klar definierte Metainformationen in ihrer pom.xml-Datei bereitstellen.

Hinweis: Sonatype bietet ein Maven-Parent-Projekt an, das in der entsprechenden Dokumentation [5] referenziert wird. Aufgrund von Problemen beim nicht interaktiven Modus sowie der für dieses Beispiel erwünschten expliziten Darstellung dessen, was „hinter den Kulissen“ abläuft, wird hier darauf verzichtet, dieses Parent-Projekt zu verwenden.

Zunächst müssen wir sicherstellen, dass die Standard-Maven-Metainformationen vollständig vorhanden sind (Listing 1).

Listing 1: Metaangaben in pom.xml Launcher application for Web Applications

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang