[JAVA] So veröffentlichen Sie eine Bibliothek in jCenter

Erstellen Sie eine OSS-Bibliothek?

In der Java- und Android-Entwicklung ist allgemein bekannt, dass OSS-Bibliotheken aus dem Maven-Repository abgerufen werden, und der Stil des Herunterladens von Jars und Aars zur Verwendung wird selten gesehen.

Da es sich um eine Bibliothek handelt, die mit großem Aufwand erstellt wurde, veröffentlichen wir sie im Maven-Repository, damit sie weit verbreitet ist. Wenn Sie die Ausgabedatei in http / https hosten, wird das Maven-Repository selbst zu einem Repository. Wenn Sie also Github verwenden, können Sie es in Github-Seiten speichern, um das Streumaven-Repository zu vervollständigen. Ich mache das auch. Dies erfordert jedoch, dass der Pfad des Streu-Repositorys zum Projekt hinzugefügt wird. genau wie dieser.

repositories {
    maven {
        url 'https://ohmae.github.com/maven'
    }
}

Es gibt ein wenig Widerstand seitens der Öffentlichkeit, und seitens des Benutzers möchte ich das Streu-Repository nicht verwenden. Die Anzahl der Repositorys erhöht sich mit jedem Hinzufügen eines OSS. Der Build ist wahrscheinlich langsam. Wenn Sie es in mavenCentral oder jcenter ablegen können, müssen Sie den Pfad nicht direkt schreiben. In neueren Android-Versionen wird das Repository standardmäßig so beschrieben.

repositories {
    google()
    jcenter()
}

jcenter ist standardmäßig geschrieben, aber im Fall von mavenCentral müssen Sie mavenCentral () hinzufügen.

Daher möchte ich erklären, wie die Bibliothek auf jcenter veröffentlicht wird. (Obwohl gesagt wurde, dass es einfach ist, hatte ich große Probleme, also sag nicht, um welche Nummer es sich handelt.)

Da ich beim Veröffentlichen einiger Bibliotheken Screenshots gemacht habe, kann dies verwirrend sein, da jeder Sukusho eine andere Bibliothek hat. Bitte lesen Sie diese jedoch entsprechend.

Melden Sie sich bei Bintray an

Gehen Sie zu https://bintray.com/.

image.png

Sie können ganz einfach ein Konto für ein OSS-Projekt erstellen. Im Fall eines OSS-Plans wird gesagt, dass die Bedingung 10 GB Speicher und 1 TB / m Download ist. Wenn Sie es jedoch als Maven-Repository verwenden, das jar / aar verteilt, werden Sie selten ein Projekt finden, das in dieser Bedingung gefangen wird.

Klicken Sie auf "Hier anmelden" für ein Open Source-Konto

Ein Bildschirm wie dieser wird angezeigt. Geben Sie daher die erforderlichen Informationen ein. Wenn Sie ein OSS-Projekt haben, haben Sie wahrscheinlich ein Github-Konto. Es ist daher eine gute Idee, sich bei Ihrem Github-Konto anzumelden. Jeder, der sich Sorgen um das Verknüpfen von Konten macht, ist gut.

image.png

Ich beschloss, mich bei Github anzumelden.

image.png

Geben Sie in diesem Fall dem Binär-Bot die Erlaubnis. Es ist ein schreibgeschützter Zugriff auf die E-Mail-Adresse der Kontodaten, daher denke ich, dass Sie sich Sorgen machen müssen.

image.png

Ihr Name, Kontoname und E-Mail-Adresse werden in die Github-Informationen eingegeben. Es scheint, dass Sie alles andere als Ihre E-Mail-Adresse ändern können. In meinem Fall könnte ich den Kontonamen von Github so verwenden, wie er ist, aber es kann Fälle geben, in denen er nicht verwendet werden kann. Vielleicht. Ich weiß nicht, was in diesem Fall passieren wird.

image.png

So wird es sein, wenn Sie ein Konto erstellen können.

Da das Passwort nicht unmittelbar nach dem Erstellen des Kontos festgelegt wird, ist es besser, das Passwort unter Bearbeiten Ihres Profils festzulegen.

Erstellen Sie ein Maven-Repository in Bintray

Klicken Sie auf Neues Repository hinzufügen.

image.png

Es scheint, dass private Repositories belastet werden. Mit OSS müssen Sie es nicht einmal privat halten und öffentlich lassen.

Name Obwohl es sich um einen Repository-Namen handelt, wird er in der URL verwendet und hat die Form "https://bintray.com/ / / ". Wenn Sie für jeden Zweck mehrere Repositorys erstellen möchten, können Sie diese entsprechend benennen. Es scheint jedoch, dass viele Benutzer Maven für Maven-Repositorys verwenden. Type Ein Pulldown-Menü wird angezeigt. Wählen Sie daher Maven. Default Licenses Es ist eine Option, sodass Sie sie nicht eingeben müssen. Wenn Sie jedoch die zu verwendende Lizenz kennen, geben Sie sie ein. Ich habe mich für MIT entschieden. Description Dies ist die Beschreibung dieses Repositorys. Ich konnte keine gute Erklärung finden, also ließ ich sie leer.

Klicken Sie auf Erstellen.

image.png

Das Repository wird jetzt erstellt.

Machen Sie ein Paket

Klicken Sie im Repository-Bildschirm auf Neues Paket hinzufügen, um ein Paket zu erstellen. Stellen Sie sicher, dass es jeder zu veröffentlichenden Bibliothek entspricht.

image.png

Name Es ist kein Java-Paketname. Sie können den Java-Paketnamen verwenden, aber geben Sie ihm einen Namen, der einfach diese Bibliothek darstellt. Ich habe mich entschieden, groupId + artefaktId zu setzen. Die Artefakt-ID allein sollte kein Problem sein, aber ich habe ihr einen seltsam einfachen Namen gegeben. Description Geben Sie die Beschreibung der zu veröffentlichenden Bibliothek ein License Dies ist obligatorisch. Geben Sie also die zu verwendende Lizenz ein. Wenn die Lizenz noch nicht entschieden wurde, kann sie nicht veröffentlicht werden. Lassen Sie uns entscheiden und von vorne beginnen. Tags Da es sich um ein Tag handelt, das für die Suche usw. verwendet wird, geben wir Kategoriedaten wie "Android" ein. Sie können mehrere festlegen. Maturity Wählen Sie zwischen "Offiziell", "Stabil", "Entwicklung" und "Experimentell". Setzen Sie die richtigen Dinge ein. Website Es ist nicht erforderlich, aber wenn Sie den Quellcode auf Github veröffentlichen, können Sie diese URL verwenden. Issue tracker Dies ist ebenfalls nicht erforderlich, aber Sie können die Problem-URL auch auf Github verwenden. Version Control Erforderlich. Geben Sie die Github-URL ein.

Das letzte Kontrollkästchen ist, ob die Anzahl der Downloads veröffentlicht werden soll, aber es spielt keine Rolle, welcher.

Klicken Sie auf Paket erstellen.

image.png

Das Paket wurde erstellt.

Manuell hochladen

Es ist besser, automatisch mit dem später beschriebenen Gradle hochzuladen, aber Sie können auch ein bereits erstelltes Glas manuell hochladen.

Version erstellen

Klicken Sie unter Versionen auf Neue Ansicht.

image.png

Name Geben Sie einen Versionsnamen wie 0.0.1 ein. Ich habe keine Regeln für Versionsnamen gefunden, aber solange Sie sie veröffentlichen, geben Sie ihr einen aussagekräftigen Versionsnamen gemäß Semantic Versioning. Release date Stellen Sie das Veröffentlichungsdatum ein. Das heutige Datum ist standardmäßig enthalten, scheint jedoch nicht erforderlich zu sein. Description Eine Beschreibung dieser Version ist nicht erforderlich.

Sie können eine leere Version erstellen, indem Sie auf Version erstellen klicken.

Datei-Upload

Wählen Sie nach dem Erstellen der Version oben auf dem Bildschirm die Option Dateien hochladen.

image.png

Dann sehen Sie den folgenden Bildschirm

image.png

Target Repository Path Geben Sie den Pfad zum Hochladen der Datei an.

Beispielsweise ist "net.mm2d.log" in diesem Screenshot eine Bibliothek mit der Gruppen-ID "net.mm2d", dem Artefakt-ID "log" und der Version "0.0.2". Das Ziel zum Hochladen der POM-Datei lautet also "net". /mm2d/log/0.0.2 "ist angegeben.

Sie können hochladen, indem Sie die hochzuladende pom / jar / aar-Datei per Drag & Drop auf Click to Add Files unten rechts auf dem Bildschirm ziehen und auf Save Save Changes (Änderungen speichern) klicken.

image.png

Sobald der Upload abgeschlossen ist, können Sie die hochgeladene Datei auf der Registerkarte Dateien anzeigen. Maven-metadata.xml wird automatisch eine Ebene höher erstellt.

Darüber hinaus wird es nicht nur durch Hochladen veröffentlicht. Sie müssen auf Veröffentlichen klicken. Ich habe es auf einen seltsamen Pfad hochgeladen! In solchen Fällen hat das Löschen vor dem Veröffentlichen keine Auswirkung. Selbst das Hochladen von Gradle, das später beschrieben wird, schien die Veröffentlichung nicht zu automatisieren. Daher müssen Sie sich nach jedem Hochladen bei bintray anmelden und veröffentlichen. Ein wenig mühsam ...

Hochladen von Gradle zulassen

Das Gradle-Plug-In wird bereitgestellt und Sie können es einfach hochladen, indem Sie die Einstellungen in build.gradle schreiben. Verwenden Sie diese Methode für die normale Entwicklung. Wenn Sie CI verwenden, können Sie die CI-Build-Artefakte auch so hochladen, wie sie sind.

GPG-Schlüssel erstellen ... Nr

Es scheint, dass Sie die Bibliothek durch Hochladen des GPG-Schlüssels signieren können, aber ich konnte die Frage nicht loswerden, dass ich sowohl den öffentlichen als auch den privaten Schlüssel hochladen musste ... nein, das war's. Ich habe mich dagegen entschieden. Es scheint, dass Sie es mit dem Bintray-Schlüssel signieren lassen können, ohne es selbst vorzubereiten, also können Sie das wählen.

API-Schlüssel abrufen

Sie können den API-Schlüssel erhalten, indem Sie Profil bearbeiten → API-Schlüssel auswählen. Dieser Schlüssel darf nicht weitergegeben werden. Lass uns nicht auslaufen.

Speichern Sie den API-Schlüssel in einer lokalen Datei

Da es von Gradle hochgeladen wird, muss Gradle den API-Schlüssel lesen. Wenn Sie ihn jedoch in eine Datei im öffentlichen Repository schreiben, kann jeder ihn hochladen. Schreiben Sie es an einem Ort, an dem Sie sich nicht versehentlich festlegen. (In dem unwahrscheinlichen Fall, dass Sie es versehentlich veröffentlichen, können Sie es widerrufen und den Schlüssel ungültig machen, also keine Panik)

Wenn es sich um " /.gradle/gradle.properties" handelt, befindet es sich außerhalb des Repositorys, das Risiko eines versehentlichen Auslaufens des Vorgangs ist gering und es wird standardmäßig gelesen, sodass es nicht störend ist, also die Person, die hier schreibt Scheint viele zu sein. Wenn die Datei nicht vorhanden ist, erstellen Sie sie. Für Windows ist es "C: \ Benutzer \ \ .gradle \ gradle.properties". Schreiben Sie wie folgt. Der Variablenname muss nicht identisch sein, sollte jedoch eindeutig sein.

bintray_user=xxxxxx
bintray_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Fix build.gradle

** * Dieses build.gradle funktioniert in der neuen Version nicht mehr richtig. Umgeschrieben mit build.gradle zum Hochladen in jCenter (bintray) **

Verwenden Sie das offizielle Plugin gradle-bintray-plugin. Zu Abhängigkeiten des Stammprojekts wurde Folgendes hinzugefügt. Fügen Sie für Android-Bibliotheken auch das Android-Maven-Gradle-Plugin hinzu.

buildscript {
...
    dependencies {
...
        classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3'
        classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
    }
}

Wenden Sie das Plug-In im Modul build.gradle an. Wenden Sie com.jfrog.bintray nur für Java an, 2 Plugins für Android

apply plugin: 'com.jfrog.bintray'
apply plugin: 'com.github.dcendents.android-maven'

Wir werden die Informationen für das Hochladen festlegen, aber da ähnliche Informationen wiederholt festgelegt werden, werden wir zuerst die Basisinformationen definieren. Wenn der Modulname und die Artefakt-ID unterschiedliche Namen sind, scheint der Name des JAR der Modulname zu sein, es sei denn, die Artefakt-ID ist in archivesBaseName festgelegt.

https://github.com/ohmae/preference-activity-compat zeigt die Einstellung zum Hochladen von aar an. Wenn Sie es verwenden möchten, schreiben Sie Folgendes in Abhängigkeiten.

implementation 'net.mm2d:preference:0.0.2'

In diesem Fall lautet die Gruppen-ID "net.mm2d", die Artefakt-ID "Voreinstellung", die Version "0.0.2" und das Upload-Zielpaket "net.mm2d.preference". Da der Modulname der Bibliothek "lib" ist, was sich von artefaktId unterscheidet, muss archivesBaseName festgelegt werden.

def versionMajor = 0
def versionMinor = 0
def versionPatch = 2

group 'net.mm2d'
archivesBaseName = 'preference'
version "${versionMajor}.${versionMinor}.${versionPatch}"

def libraryId = 'log-android'
def siteUrl = 'https://github.com/ohmae/preference-activity-compat'
def githubUrl = 'https://github.com/ohmae/preference-activity-compat'

Sie können hochladen, indem Sie die Aufgabe mit diesem definierten Wert wie folgt definieren.

bintray {
    user = project.hasProperty('bintray_user') ? bintray_user : ''
    key = project.hasProperty('bintray_key') ? bintray_key : ''
    configurations = ['archives']

    pkg {
        repo = 'maven'
        name = project.group + '.' + libraryId
        licenses = ['MIT']
        websiteUrl = siteUrl
        issueTrackerUrl = githubUrl + '/blob/master/LICENSE'
        vcsUrl = githubUrl + '.git'
        issueTrackerUrl = githubUrl + '/issues'
        publicDownloadNumbers = true
        version {
            name = project.version
        }
    }
}

install {
    repositories.mavenInstaller {
        pom.project {
            name libraryId
            url siteUrl

            packaging 'aar'
            groupId project.group
            artifactId libraryId
            version project.version

            licenses {
                license {
                    name 'The MIT License'
                    url 'https://opensource.org/licenses/MIT'
                    distribution 'repo'
                }
            }
            scm {
                connection githubUrl + '.git'
                url githubUrl
            }
        }
    }
}

Sie können jetzt hochladen, indem Sie die Aufgabe bintrayUpload ausführen. image.png

Führen Sie nach dem Hochladen "Veröffentlichen" von der Bintray-Site aus. image.png

Es wird nun aus dem persönlichen Repository von Bintray veröffentlicht. (Noch nicht auf jcenter veröffentlicht) Um es an dieser Stelle zu verwenden, müssen Sie die folgende Repository-URL angeben.

repositories {
    maven {
        url 'https://dl.bintray.com/<Kontobezeichnung>/<Repository-Name>'
    }
}

Auf jCenter veröffentlichen

Klicken Sie auf der Paketseite unter Verknüpft mit auf "Zu jCenter hinzufügen". image.png

Stellen Sie eine Anfrage zur Veröffentlichung über jCenter. Die Gruppen-ID muss eindeutig sein. Bei der Entscheidung über den Paketnamen haben Sie wahrscheinlich ein eindeutiges domänenbasiertes Produkt ausgewählt, damit Sie den Paketnamen eingeben können.

Sie erhalten innerhalb weniger Tage nach dem Absenden eine Genehmigungsantwort. In meinem Fall hat es ungefähr einen halben Tag gedauert, aber ich denke, dass die Personen im Inneren manuell reagieren, sodass die Überlastung der Anwendung möglicherweise beeinträchtigt wird. Warten wir geduldig.

image.png

Jcetenr wurde unter Verknüpft mit hinzugefügt.

image.png

Jetzt ist es auf jcenter veröffentlicht und Sie können es verwenden, indem Sie es einfach zu Abhängigkeiten hinzufügen, ohne das Streu-Repository zu gradle hinzuzufügen.

Die Bibliothek, an der ich gearbeitet habe, ist hier. Als Referenz.

das ist alles.

Recommended Posts

So veröffentlichen Sie eine Bibliothek in jCenter
So fügen Sie ein Video in Rails ein
So zeigen Sie eine Webseite in Java an
So führen Sie eine djUnit-Aufgabe in Ant aus
So fügen Sie in Spring Boot einen Klassenpfad hinzu
So erstellen Sie ein Thema in Liferay 7 / DXP
So implementieren Sie eine ähnliche Funktion in Rails
So erstellen Sie einfach ein Pulldown mit Rails
So generieren Sie automatisch einen Konstruktor in Eclipse
So löschen Sie alle Daten in einer bestimmten Tabelle
So erstellen Sie eine Java-Umgebung in nur 3 Sekunden
So implementieren Sie eine nette Funktion in Ajax mit Rails
Verwendung der Z3-Bibliothek in Scala mit Eclipse
Wie hinterlasse ich einen Kommentar?
So erstellen Sie ein Spring Boot-Projekt in IntelliJ
So erstellen Sie einen Daten-URI (base64) in Java
So zeigen Sie eine Browser-Vorschau mit VS-Code an
[So fügen Sie ein Video mit Rails in haml ein]
So schreiben Sie eine Datumsvergleichssuche in Rails
So verspotten Sie einen Super-Methodenaufruf in PowerMock
Verwendung der JDD-Bibliothek in Scala mit Eclipse
So konvertieren Sie A in a und a in A mit logischem Produkt und Summe in Java
So konvertieren Sie eine Datei in ein Byte-Array in Java
[Rails 6] So legen Sie ein Hintergrundbild in Rails [CSS] fest
[Rails] So laden Sie JavaScript in einer bestimmten Ansicht
Wie schreibe ich einen Core Mod in Minecraft Forge 1.15.2
So fügen Sie ein Video ein
So erstellen Sie eine Methode
So ändern Sie eine Zeichenfolge in einem Array in eine Zahl in Ruby
So erstellen Sie ein Platzhalterteil zur Verwendung in der IN-Klausel
So wählen Sie ein bestimmtes Datum anhand des Codes im FS-Kalender aus
So zeigen Sie Diagramme in Ruby on Rails an (LazyHighChart)
So fügen Sie dieselben Indizes in ein verschachteltes Array ein
So entwickeln und registrieren Sie eine Sota-App in Java
So erstellen Sie ein Service Builder-Portlet in Liferay 7 / DXP
So richten Sie einen Proxy mit Authentifizierung in Feign ein
Wie man Lombok im Frühling benutzt
So finden Sie May'n in XPath
So blenden Sie die Bildlaufleiste in WebView aus
So führen Sie JUnit in Eclipse aus
Wie man in Ruby auf unbestimmte Zeit iteriert
So erstellen Sie einen Java-Container
Wie man die Programmierung in 3 Monaten beherrscht
Wie unterschreibe ich Minecraft MOD?
So erhalten Sie Parameter in Spark
So fügen Sie eine externe Bibliothek ein
Verwendung von InjectorHolder in OpenAM
[Swift] So senden Sie eine Benachrichtigung
So erstellen Sie einen Begrüßungsbildschirm
So installieren Sie jQuery in Rails 6
Wie erstelle ich ein Maven-Projekt?
So benennen Sie Variablen in Java
So setzen Sie Lombok in Eclipse
So erstellen Sie ein Java-Array
So verketten Sie Zeichenfolgen mit Java