2012-04-19 9 views
7

Ich verwalte viele Maven-Projekte. Die meisten von ihnen werden in unserem internen Maven-Repository bereitgestellt. Jetzt möchte ich ein Projekt in Maven Central veröffentlichen. Bisher hatte ich ein Eltern-POM, das die DistributionManagement unseres internen Repositorys spezifiziert hat. Es ist nicht sinnvoll, diese Informationen in Maven Central bereitzustellen.Verschieben eines Projekts nach Maven Central

Wie sollte ich das Verteilungsmanagement für meine internen Projekte angeben? Soll ich für interne Projekte einen eigenen Eltern-Pom-Konzern haben?

Sonatype erwähnt eine Möglichkeit, direkt in ihren Repositories bereitzustellen, aber sie empfehlen, ihre eigenen Eltern Pom (Oss-Parent) zu verwenden. Bei Projekten mit mvnrepository.org konnte ich keine Projekte mit Oss-Parent als Eltern finden. Stellen die meisten Projekte ihre Artefakte manuell für Sonatype bereit? Wo und wie setzen sie sie zuerst ein?

So viele Fragen! Ich bin erstaunt, wie kompliziert dies ist ...

Update: es stellt sich heraus, einige der Projekte, die ich identifizierte tun Verwendung Oss-Parent. Es ist nur versteckt, da es das Elternteil eines Elternteils ist.

+1

Als ich das letzte Mal darüber gelesen habe, glaube ich, dass du ein Ticket mit ihnen sammeln musst, um dein Glas in Maven Central zu bringen. Aber Sie haben Recht bezüglich des Sonatype OSS-Repositorys. Ich denke, vorausgesetzt, Sie erfüllen bestimmte Voraussetzungen, die es Ihnen ermöglichen, sie direkt in ihrem Repo bereitzustellen. Wenn Sie eine Bibliothek in die Public Domain stellen, sollte sie idealerweise über Apache 2 oder eine ähnliche Lizenz verfügen. Bist du bereit deinen Code für die Welt zu öffnen? Wenn dies der Fall ist, kann es sinnvoll sein, Ihren Code an einem Ort wie Github, SourceForge oder Google Code zu hosten. –

+0

Der Code ist offen für die Welt. Ich versuche jetzt, die Binärdateien für die Welt verfügbar zu machen. – schmmd

Antwort

9

Sobald Sie alle eingerichtet sind, können Sie staged releases und SNAPSHOTs direkt an Sonatype OSS-Repository bereitstellen können. Stufenfreigaben können dann released through Sonatype's Nexus UI sein.

Um einen Repository-Ordner für Ihre Anwendung zu erstellen, der Sie bereitstellen können, geben Sie open a ticket with Sonatype on their JIRA zusammen mit einem Verweis auf das Open-Source-Projekt, das Sie bereitstellen. Der Prozess ist sehr reibungslos und Sonatype wird Ihnen helfen, wenn Sie nicht alle notwendigen Informationen bereitstellen.

Während auf den ersten Blick sieht es nicht aus wie viele Projekte haben Oss-Eltern als Eltern, tun sie oft, wenn Sie den POM-Baum zu navigieren. Zum Beispiel hat Google Guava das übergeordnete Element guava-parent mit dem übergeordneten Element oss-parent. Sobald Ihr Projekt oss-parent hat und das Repository konfiguriert ist, können Sie SNAPSHOTs und Releases einfach mit mvn deploy oder mvn release:prepare release:perform bereitstellen.

Es scheint überwältigend, aber es ist leicht zu verstehen, wenn Sie nur zum ersten Mal die Stufen durchpflügen.

6

Die erste ich zu lesen empfehlen ist die folgende: https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide Die OSS Eltern macht unter besonderen Umständen Sinn unter anderen nicht. Das hängt davon ab, welche Art von Projekt du verteilen möchtest.

UPDATE: Dieser Link ist jetzt tot. Suchen Sie nach here, um Hilfe bei der Bereitstellung für Sonatype bereitzustellen.

UPDATE: Für Maven Zentral dies überprüfen: http://central.sonatype.org/

+0

Ich habe dieses Dokument gelesen. Möchten Sie näher darauf eingehen, wann der OSS-Elternteil sinnvoll ist und wann nicht?Wie stellen Projekte ohne einen OSS-Elternteil maven central bereit? Wie stellen sie intern ohne distributionManagement in ihrer pom.xml bereit? – schmmd

+0

Erstellen Sie einfach ihren eigenen DistributionManagement-Bereich (http://search.maven.org/#artifactdetails|com.soebes.smpp|smpp|0.3|pom). Sie können nicht intern ohne eine distributionManagement bereitstellen ... das Beste ist, Repo-Manager auch intern zu haben ... Wenn Sie ein Projekt haben, das intern verwendet wird, aber zentral bereitgestellt wird, als dieses Projekt benötigt, kann sein eigener DistributionManagement-Bereich durch Mit einem anderen Elternteil, aber vorsichtig sein, nichts, was zu maven central sollte von Dingen abhängen, die nicht in maven zentral sind. – khmarbaise

+2

Das Dokument, auf das Sie sich beziehen, ist auf magische Weise verschwunden, ohne dass es einen eindeutigen Nachfolger gibt. –

Verwandte Themen