So veröffentlichen Sie eine Kotlin-Android-Bibliothek in jCenter

Offenbar mangelt es an Informationen darüber, wie eine in Kotlin geschriebene Android-Bibliothek in jCenter veröffentlicht werden kann. Wenn Sie suchen, wie Sie eine Android-Bibliothek in jCenter veröffentlichen, ist Ihnen möglicherweise dieser Beitrag mit dem Anspruch auf eine Lösung begegnet. Während diese Lösung wahrscheinlich irgendwann funktionierte, funktioniert sie derzeit nicht. Es ist jedoch ein wichtiger Hinweis, mit dem ich meine bevorzugte Methode zum Veröffentlichen einer Bibliothek festlegen kann.

Mein persönlicher Lieblingsbeitrag zum Veröffentlichen einer Bibliothek in Android ist ein Artikel auf inthecheesefactory.com. Wenn Ihre Bibliothek in Kotlin geschrieben ist, tritt bei dieser Lösung immer wieder ein Fehler auf. In diesem Beitrag geht es darum, welche Änderungen Sie vornehmen müssen, damit diese Lösung funktioniert. Ich bin mir sicher, dass diese Lösung einmal funktioniert hat. Sie scheint jedoch veraltet zu sein und funktioniert nicht mehr.

Der Hauptfehler, den Sie erhalten, wenn Sie versuchen, die von inthecheesefactory beschriebene Methode zu verwenden, besteht darin, dass JavaDoc nicht generiert wird und das Skript abgebrochen wird.

Die Lösung hierfür ist einfach

Fügen Sie in /lib/build.gradle oben das dokka-android-Plugin nach dem kotlin-android-Plugin hinzu.

Plugin anwenden: 'com.android.library'
Plugin anwenden: 'kotlin-android'
Plugin anwenden: 'org.jetbrains.dokka-android'

Konfigurieren Sie dann dokka (immer noch unter lib / build.gradle).

Android {
    ...
}

dokka {
    outputFormat = 'html'
    outputDirectory = "$ buildDir / javadoc"
}

Schließlich gibt Ihnen inthecheesefactory.com die folgenden 2 Dateien zum Einschließen.

bewerben Sie sich unter: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/installv1.gradle'
bewerben Sie sich unter: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/bintrayv1.gradle'

Sie müssen die Datei bintrayv1.gradle herunterladen und bearbeiten. Der erste Codeblock sollte folgendermaßen aussehen:

if (project.hasProperty ("android")) {// Android-Bibliotheken
    task sourcesJar (Typ: Jar) {
        classifier = 'sources'
        von android.sourceSets.main.java.srcDirs
    }

    task javadoc (Typ: Javadoc) {
        source = android.sourceSets.main.java.srcDirs
        classpath + = project.files (android.getBootClasspath (). join (File.pathSeparator))
    }
}

Sie müssen die folgenden Änderungen vornehmen.

if (project.hasProperty ("kotlin")) {// Kotlin-Bibliotheken
    task sourcesJar (Typ: Jar) {
        classifier = 'sources'
        von android.sourceSets.main.java.srcDirs
    }

    task javadoc (Typ: Javadoc, abhängig von: dokka) {

    }
} else if (project.hasProperty ("android")) {// Android-Bibliotheken
    task sourcesJar (Typ: Jar) {
        classifier = 'sources'
        von android.sourceSets.main.java.srcDirs
    }

    task javadoc (Typ: Javadoc, abhängig von: dokka) {
        source = android.sourceSets.main.java.srcDirs
        classpath + = project.files (android.getBootClasspath (). join (File.pathSeparator))
    }
}

Grundsätzlich sagen wir, dass die Verwendung der Javadoc-Aufgabe von Dokka abhängt. Die Javadoc-Task führt nichts anderes aus, als dokka auszulösen, das unter lib / build.gradle konfiguriert ist.

Sie müssen die bearbeitete Datei in Ihrem lib-Verzeichnis ablegen und dann sollte Ihre Bewerbung ungefähr so ​​aussehen:

bewerben Sie sich unter: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/installv1.gradle'
bewerben von: 'bintrayv1.gradle'

Das sollte es sein! Sie sollten nun in der Lage sein, Ihre Bibliothek zu erstellen und in bintray bereitzustellen.

Schließlich

Ich habe nicht meinen gesamten Code veröffentlicht. Ich hoffe, dass ich mich an die Firma thecheesefactory wenden kann, damit sie ihren Blog und ihren Code aktualisiert. Ob dies funktioniert oder nicht, melde ich mich hier zurück. Wie der Artikel, so dass Sie sicher sind, nicht auf Android aktualisiert verpassen.

Und schließlich lesen Sie mehr in meinen Artikeln, um großartige Android-Apps zu erstellen.

Yay! Du hast es bis zum Ende geschafft! Wir sollten uns treffen! Fühlen Sie sich frei, mir auf Medium, LinkedIn, Google+ oder Twitter zu folgen.