Projekte in Maven Central verfügbar machen

Auszug in die weite Welt


Es gibt heute kaum noch ein größeres Java-Projekt, das vollkommen ohne Open-Source-Frameworks oder Libraries auskommt. So gut wie alle Java-Frameworks nutzen zur Auflösung von Abhängigkeiten Maven Central. Interessant wird es dann, wenn man das eigene Open-Source-Projekt ebenfalls über Maven Central verfügbar machen möchte. Hierfür existiert kein einfacher Uploadbutton, das heißt, wir müssen zur Veröffentlichung einen anderen Weg gehen. Dieser Artikel gibt einen Überblick über die Anforderungen, die ein Projekt erfüllen muss, und die Schritte, die notwendig sind, um ein Open-Source-Projekt vom eigenen Rechner nach Maven Central ausliefern zu können.

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 spezie...

Neugierig geworden?

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