[JAVA] Ein neuer Ingenieur hat seine eigene Bibliothek im Maven Central Repository veröffentlicht

Zum ersten Mal habe ich ein halbes Jahr als Ingenieur meine eigene Bibliothek im Maven Central Repository registriert und veröffentlicht. Es gab einen Ort, an dem ich oft verstopft war, also werde ich diese Flugbahn verlassen.

Ich hoffe, es hilft Anfängern wie mir bei der Veröffentlichung der Bibliothek. .. ..

Ich habe hauptsächlich auf die folgenden Links verwiesen.

0. Der Anfang der Dinge

Zunächst sprach ich darüber, warum ich, der wenig Geschichte hat, plötzlich versuchte, die Bibliothek zu veröffentlichen. Aus geschäftlichen Gründen musste ich die Bibliothek im Maven Central Repository hochladen oder aktualisieren. Mir fehlen jedoch Kenntnisse und Erfahrungen "Maven Central hat verschiedene Bibliotheken und ich möchte es mit Gradle usw. verwenden. Es ist ein Ort, an dem Sie die Bibliothek ziehen können. Ist es einfach, die Bibliothek dort abzulegen? "" Es war eine solche Situation. .. ..

Es ist zu gefährlich, in einer solchen Situation plötzlich mit der Arbeit herumzuspielen (Schweiß) Deshalb habe ich beschlossen, es selbst zu versuchen.

Also dieser Artikel ist

――Maven Central ist ein Ort mit vielen Bibliotheken, nicht wahr?

Ich werde es schreiben, damit ich es verstehen kann, wenn ich es im Voraus weiß.

Bitte lassen Sie mich wissen, wenn es Fehler oder Unterschiede gibt.

1. Erstellen einer Bibliothek

Erstellen Sie zunächst die Bibliothek, die Sie veröffentlichen möchten, und veröffentlichen Sie sie auf github.

Anfänglich "Es muss erstaunlich sein, weil es von Menschen auf der ganzen Welt verwendet werden kann." Ich dachte, aber es scheint in Ordnung zu sein, jede Bibliothek separat zu veröffentlichen. (Natürlich sind böswillige Dinge nicht gut)

Die von mir veröffentlichten sind wie folgt. https://github.com/yutwoking/randomJapanLocationer Es ist einfach und gibt zufällig die 47 Präfekturnamen und Präfekturnummern zurück. ~~ Wer wird es benutzen! !! !! !! !! ~~

Dies bedeutet, dass auch so etwas Einfaches im Maven Central Repository veröffentlicht werden kann. Lol

Abgesehen davon habe ich noch nie einen Webserver selbst gestartet und eine Webanwendung veröffentlicht. Daher möchte ich diese veröffentlichte Bibliothek verwenden, um eine einfache Webanwendung zu einem späteren Zeitpunkt freizugeben.

2. Erstellen Sie ein Konto bei Sonatype JIRA

Um die Bibliothek im Maven Central Repository zu veröffentlichen, müssen Sie sich bei Sonatype JIRA bewerben. Registrieren Sie daher zuerst ein Konto. Sobald die Anwendung erfolgreich ist, kann sie für den Sonatyp OSSRH bereitgestellt und im Maven Central Repository veröffentlicht werden. Es ist nicht schwer zu registrieren, füllen Sie einfach die Elemente aus. https://issues.sonatype.org/secure/Signup!default.jspa Sie können in den Einstellungen auch Japanisch auswählen. Ich gehe hier schnell.

3. Bewerben Sie sich für ein Projekt

Beantragen Sie als Nächstes ein Projekt zur Veröffentlichung der Bibliothek. Klicken Sie oben auf der Sonatyp-Seite auf Erstellen, um das Antragsformular aufzurufen.

スクリーンショット 2019-09-19 10.27.45.png

Füllen Sie jeden Punkt wie folgt aus. Da es ein Ausländer ist, der urteilen wird, werde ich es auf Englisch schreiben.

Füllen Sie aus und klicken Sie auf Erstellen, um eine Projektseite zu erstellen und mit der Überprüfung fortzufahren. スクリーンショット 2019-09-19 10.52.53.png

Wenn nach einer Weile kein Problem vorliegt, wird die Anwendung bestanden und Sie sollten mit dem nächsten Schritt fortfahren. Die folgenden Kommentare kommen jedoch auf der Projektseite an. スクリーンショット 2019-09-19 11.00.01.png

Die Bewerbung wird nicht bestanden. .. .. Der Grund ist, dass ** GroupId nicht geeignet ist **.

Wenn Sie sich bewerben, müssen Sie es nicht tragen, weil es ein Namespace ist, oder? Ich hatte nur darüber nachgedacht, also schrieb ich "com.yutwoking" in das Lehrbuch und bewarb mich dafür. Es war hilfreich zu wissen, wie man mit den Kommentaren umgeht. ~~ Bot gibt möglicherweise nur einen festen Satz zurück ~~ Vielen Dank für die verantwortliche Person \ (^ o ^) /

Wenn auf Github veröffentlicht, io.github. {Benutzername} oder com.github. {Benutzername} Es scheint, dass Sie die GroupId verwenden sollten.

Am oberen Rand des Projektbildschirms befindet sich eine Schaltfläche zum Bearbeiten. Korrigieren Sie daher die GroupId dort. Senden Sie dann einen Kommentar, um den Fix der verantwortlichen Person zu melden. (Seien Sie vorsichtig, da die verantwortliche Person anscheinend nur dann über die Korrektur informiert wird, wenn Sie einen Kommentar abgeben.) スクリーンショット 2019-09-19 11.08.53.png Und warte eine Weile. Einige Stunden später wird ein Kommentar von der verantwortlichen Person kommen. スクリーンショット 2019-09-19 11.12.18.png Anscheinend muss ich beweisen, dass es wirklich mein Github-Account ist. Erstellen Sie wie gesagt ein Repository mit dem Namen OSSRH-51643 und geben Sie Kommentare zurück. スクリーンショット 2019-09-19 11.17.13.png Ich werde eine Weile warten. Ich habe die folgenden Kommentare erhalten und die Bewerbung wurde erfolgreich abgeschlossen! スクリーンショット 2019-09-19 11.19.12.png Am Ende heißt es, dass Sie nach der ersten Veröffentlichung einen Kommentar abgeben sollten.

4. Erstellen Sie pom.xml für die Registrierung beim Maven Central Repository

Wenn Sie Maven normal verwenden, sollten Sie pom.xml geschrieben haben. Normalerweise benutze ich jedoch Gradle, daher hatte ich auch hier Schwierigkeiten.

Derzeit können Sie sich anscheinend auch mit gradle registrieren. https://tagomoris.hatenablog.com/entry/2016/02/16/114226

Da es jedoch in Maven Central veröffentlicht wird, möchte ich es mit Maven ausprobieren. Schreiben Sie also pom.xml.

Klicken Sie hier für die pom.xml, die ich geschrieben habe https://github.com/yutwoking/randomJapanLocationer/blob/master/pom.xml

Klicken Sie hier für die offizielle pom.xml https://github.com/simpligility/ossrh-demo/blob/master/pom.xml

Fehler in dieser pom.xml führen beim Freigeben zu einem Fehler. Wenn Sie die Formel mit dem vergleichen, was ich geschrieben habe, ist es einfacher zu verstehen, wo sie bearbeitet werden muss. Ich bin hier oft gestolpert (weinend) Ich werde den Stolperpunkt in den Release-Artikel schreiben.

5. GPG-Schlüssel einrichten

Schlüsselvorbereitung

Es scheint, dass eine GPG-Schlüsselsignatur erforderlich ist, um die Bibliothek zu veröffentlichen. Da ich ein Mac bin, installieren Sie zuerst die folgende Software. https://gpgtools.org/

Öffnen Sie als Nächstes ein Terminal und führen Sie den folgenden Befehl aus. (Wenn es nicht ausgeführt werden kann, starten Sie das Terminal neu oder ändern Sie gpg2 → gpg und versuchen Sie es.)

Generieren Sie zunächst den Schlüssel. Fahren Sie nach Eingabe des Befehls gemäß den Anweisungen OK fort

$ gpg2 --gen-key

Überprüfen Sie, ob der Schlüssel mit dem folgenden Befehl generiert werden kann

$ gpg2 --list-keys

/Users/Ehara/.gnupg/pubring.kbx
-------------------------------
pub   rsa2048 2019-09-18 [SC] [Haltbarkeitsdatum: 2021-09-17]
      BDCD77306BCE8473BBFC69521697094FBD6EAK76
uid           [ultimativ] Yuto Ehara <****@gmail.com>
sub   rsa2048 2019-09-18 [E] [Haltbarkeitsdatum: 2021-09-17]

Wenn der Schlüssel erstellt wurde, senden Sie den öffentlichen Schlüssel mit dem folgenden Befehl an den Server. Geben Sie für den Wert von --send-keys den Wert des öffentlichen Schlüssels ein, der in ↑ bestätigt wurde.

$ gpg2 --keyserver hkp://pool.sks-keyservers.net --send-keys BDCD77306BCE8473BBFC69521697094FBD6EAK76

Maven-Einstellungen für die Verwendung von Schlüsseln

Eine Datei mit dem Namen settings.xml muss sich lokal befinden, damit sie für Sonatype OSSRH bereitgestellt werden kann. Es scheint, dass das zu lesende Verzeichnis für jeden Benutzer unterschiedlich ist. Die Literatur wird häufig gelesen, indem sie in ~ / .m2 / settings.xml abgelegt wird. Ich habe es auch hier erstellt und es hat funktioniert.

Der Inhalt von settings.xml lautet wie folgt.

settings.xml


<settings>
  <servers>
    <server>
      <id>ossrh</id>
      <username>YOUR_JIRA_USERNAME</username>
      <password>YOUR_JIRA_PASSWORD</password>
    </server>
  </servers>
  <profiles>
    <profile>
      <id>ossrh</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
        <gpg.executable>gpg2</gpg.executable>
        <gpg.passphrase>GPG_KEY_PASSPHRASE</gpg.passphrase>
      </properties>
    </profile>
  </profiles>
</settings>

YOUR_JIRA_USERNAME und YOUR_JIRA_PASSWORD gehören Ihnen, als Sie Ihr JIRA-Konto erstellt haben. GPG_KEY_PASSPHRASE ist diejenige, die Sie beim Erstellen des Schlüssels festgelegt haben. Jetzt wird die Datei aufgerufen, wenn Sie maven starten.

6. Bereitstellen auf Sonatype OSSRH

Führen Sie die Bereitstellung mit dem folgenden Befehl aus.

$ mvn clean deploy -DperformRelease=true

Wenn es kein Problem gibt, sollte BUILD SUCCESS stehen. Wenn es nicht angezeigt wird, überprüfen Sie die Fehlermeldung und korrigieren Sie sie.

In meinem Fall habe ich aufgrund des folgenden Fehlers einen Fehler erhalten. Bitte beziehen Sie sich darauf, wenn Sie einen Fehler erhalten.

<plugin>
	<artifactId>maven-compiler-plugin</artifactId>
	<configuration>
		<source>12</source>
		<target>12</target>
		<encoding>UTF-8</encoding>
	</configuration>
</plugin>

7. Veröffentlicht auf Sonatype OSSRH

Sobald die Bereitstellung abgeschlossen ist, ist es Zeit, sie freizugeben.

Melden Sie sich zunächst beim Sonatyp OSSRH an. Der Benutzername und der Pass bei der Anmeldung gelten für das JIRA-Konto. https://oss.sonatype.org/

Klicken Sie nach dem Anmelden auf der linken Seite des Bildschirms auf Build Promotion> Staging-Repositorys, um eine Liste der Staging-Repositorys anzuzeigen. Wenn die Bereitstellung funktioniert, sollten Sie Ihre hier haben. スクリーンショット 2019-09-19 16.12.35.png Wählen Sie Ihre aus und schließen Sie. Wenn Sie es schließen, werden verschiedene Überprüfungen ausgeführt. Warten Sie also eine Weile. Wenn das Schließen funktioniert, müssen Sie nur die Freigabetaste drücken. Wenn das Schließen fehlschlägt, löschen Sie das Repository mit dem Fehler, korrigieren Sie den Fehler und versuchen Sie es erneut aus der Bereitstellung.

Ich war mit Fehlern übersät, daher hier die Fehler, die ich erlebt und behoben habe.

Öffentlicher Schlüssel nicht gefunden Fehler

Wenn Sie den öffentlichen Schlüssel auf dem Server registrieren und dies nicht lange dauert, tritt aufgrund der Synchronisierung ein Fehler auf. Nachdem Sie einige Stunden gewartet und es erneut versucht hatten, wurde der Fehler behoben.

Referenz https://codeday.me/jp/qa/20190129/197488.html

POM-Validierungsfehler

Dieser Fehler wird durch ein fehlendes Tag in pom.xml verursacht. Stellen Sie es erneut bereit, einschließlich der folgenden Tags (und aller untergeordneten Tags für diese Tags):

Beachten Sie außerdem, dass ein Fehler auftritt, wenn das Name-Tag und das Artefakt-ID-Tag nicht identisch sind.

Validierungsfehler außer pom

Fügen Sie das entsprechende Plugin in pom.xml ein. Beispiel) Bei einem Javadoc-Validierungsfehler fügen Sie das Maven-Javadoc-Plugin ein.

Referenz https://web-dev.hatenablog.com/entry/maven/central/nexus-close-error

Wenn Sie es sicher schließen können

Alles was Sie tun müssen, ist die Pressemitteilung \ (^ o ^) / Es wird einige Stunden dauern, bis es im Maven Central Repository angezeigt wird. Warten Sie also.

8. Bestätigen Sie, dass es veröffentlicht wurde

http://search.maven.org/ Wenn Sie nach gropId in suchen, sollten Sie Ihr veröffentlichtes Repository finden! スクリーンショット 2019-09-19 16.37.53.png

Eindrücke habe ich versucht

Zum ersten Mal waren verschiedene Verfahren mühsam und es dauerte lange, aber ab dem nächsten Mal scheint es möglich zu sein. Ich werde das nächste Mal die Release-Arbeit mit gradle versuchen.

Bitte lassen Sie mich wissen, wenn ein Fehler vorliegt m (_ _) m

Recommended Posts

Ein neuer Ingenieur hat seine eigene Bibliothek im Maven Central Repository veröffentlicht
Verfahren zum Veröffentlichen im Maven Central Repository
So erstellen Sie ein Maven-Repository für 2020
So veröffentlichen Sie eine Bibliothek in jCenter
Ich habe versucht, ein Remote-Repository für Maven einzurichten
Ich habe versucht, das GitHub-Repository als Bibliotheksserver zu verwenden