Jak publikovat knihovnu Kotlin-Android na jCenter

Zdá se, že tam není dostatek informací o tom, jak publikovat knihovnu Android psanou v Kotlin na jCenter. Pokud hledáte způsob publikování knihovny Android na webu jCenter, možná jste narazili na tento příspěvek, který tvrdí, že má řešení. Ačkoli toto řešení pravděpodobně fungovalo v určitém okamžiku, v současné době nefunguje. Poskytuje však důležitý tip, který můžeme použít k opravě mého oblíbeného způsobu publikování knihovny.

Můj osobní oblíbený příspěvek o tom, jak publikovat knihovnu v systému Android, je článek o webu inthecheesefactory.com. Pokud je vaše knihovna napsána v Kotlinu, toto řešení se stále objevuje s chybou. Tento příspěvek pojednává o tom, jaké změny je třeba provést, aby toto řešení fungovalo. Jsem si jistý, že toto řešení fungovalo jednou, zdá se však, že je staré a nefunguje.

Hlavní chyba, kterou získáte, když se pokusíte použít metodu naznačenou inthecheesefactory, je to, že JavaDoc není vygenerován a to způsobí, že se skript zruší.

Řešení je jednoduché

V /lib/build.gradle nahoře přidejte plugin dokka-android za plugin kotlin-android.

použít plugin: 'com.android.library'
použít plugin: 'kotlin-android'
použít plugin: 'org.jetbrains.dokka-android'

Poté nakonfigurujte dokku (stále pod lib / build.gradle).

android {
    ...
}

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

Konečně, inthecheesefactory.com vám dává následující 2 soubory, které chcete zahrnout.

platí od: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/installv1.gradle'
platí od: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/bintrayv1.gradle'

Musíte stáhnout a upravit soubor bintrayv1.gradle, první blok kódu by měl vypadat takto:

if (project.hasProperty ("android")) {// knihovny Android
    zdroje úkolůJar (typ: Jar) {
        classifier = 'sources'
        z android.sourceSets.main.java.srcDirs
    }

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

Níže je třeba provést změny.

if (project.hasProperty ("kotlin")) {// Kotlinovy ​​knihovny
    zdroje úkolůJar (typ: Jar) {
        classifier = 'sources'
        z android.sourceSets.main.java.srcDirs
    }

    task javadoc (typ: Javadoc, závislostiOn: dokka) {

    }
} else if (project.hasProperty ("android")) {// knihovny Android
    zdroje úkolůJar (typ: Jar) {
        classifier = 'sources'
        z android.sourceSets.main.java.srcDirs
    }

    task javadoc (typ: Javadoc, závislostiOn: dokka) {
        source = android.sourceSets.main.java.srcDirs
        classpath + = project.files (android.getBootClasspath (). join (File.pathSeparator))
    }
}

V zásadě říkáme, že použití javadoc úlohy závisí na dokce. Úkol javadoc nedělá nic jiného než spouštěcí dokku, která je konfigurována v lib / build.gradle.

Upravený soubor musíte umístit do svého adresáře lib a pak by vaše žádost měla vypadat asi takto:

platí od: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/installv1.gradle'
platí od: 'bintrayv1.gradle'

To by mělo být! Nyní byste měli být schopni sestavit a nasadit svou knihovnu na bintray.

Konečně

Nevložil jsem celý svůj kód, doufám, že budu kontaktovat technickou zprávu a nechám je aktualizovat svůj blog a svůj kód. Pokud to funguje nebo ne, podám zprávu zpět zde. Stejně jako v článku, takže si určitě nenechte ujít aktualizovaný Android.

A konečně, Chcete-li vytvořit skvělé aplikace pro Android, přečtěte si více z mých článků.

Yay! dosáhli jste až do konce! Měli bychom si pověsit! klidně mě sledujte na médiu, LinkedIn, Google+ nebo Twitteru.