Πώς να δημοσιεύσετε μια βιβλιοθήκη Kotlin-Android στο jCenter

Φαίνεται να υπάρχει έλλειψη πληροφοριών σχετικά με τον τρόπο δημοσίευσης μιας βιβλιοθήκης Android που γράφεται στο Kotlin στο jCenter. Εάν αναζητήσετε πώς να δημοσιεύσετε μια βιβλιοθήκη Android στο jCenter, ίσως έχετε συναντήσει αυτήν την ανάρτηση που ισχυρίζεται ότι έχει λύση. Αν και αυτή η λύση πιθανότατα λειτουργούσε κάποια στιγμή, δεν λειτουργεί αυτή τη στιγμή. Ωστόσο, παρέχει μια σημαντική υπόδειξη που μπορούμε να χρησιμοποιήσουμε για να διορθώσουμε τον αγαπημένο μου τρόπο να δημοσιεύσω μια βιβλιοθήκη.

Η προσωπική μου αγαπημένη ανάρτηση σχετικά με τον τρόπο δημοσίευσης μιας βιβλιοθήκης στο Android είναι ένα άρθρο σχετικά με το inthecheesefactory.com. Εάν η βιβλιοθήκη σας είναι γραμμένη στο Kotlin, αυτή η λύση συνεχίζει να παρουσιάζει ένα λάθος. Αυτή η ανάρτηση είναι για τις αλλαγές που πρέπει να κάνετε, για να μπορέσετε να χρησιμοποιήσετε αυτήν τη λύση. Είμαι βέβαιος ότι αυτή η λύση λειτούργησε μία φορά, ωστόσο, φαίνεται να είναι παλιά και δεν λειτουργεί πλέον.

Το κύριο λάθος που αντιμετωπίζετε όταν προσπαθείτε να χρησιμοποιήσετε τη μέθοδο που περιγράφεται από inthecheesefactory, είναι ότι το JavaDoc δεν δημιουργείται και αυτό προκαλεί την ακύρωση του σεναρίου.

Η λύση γι 'αυτό είναι απλή

Στο /lib/build.gradle στο επάνω μέρος προσθέστε το plugin του dokka-android μετά την προσθήκη kotlin-android.

εφαρμογή plugin: 'com.android.library'
εφαρμογή plugin: 'kotlin-android'
εφαρμογή plugin: 'org.jetbrains.dokka-android'

Στη συνέχεια, ρυθμίστε το dokka (εξακολουθεί να βρίσκεται στο πλαίσιο lib / build.gradle).

android {
    ...
}}

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

Τέλος, το inthecheesefactory.com σας δίνει τα ακόλουθα 2 αρχεία που πρέπει να συμπεριλάβετε.

ισχύουν από: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/installv1.gradle'
ισχύουν από: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/bintrayv1.gradle'

Θα πρέπει να κατεβάσετε και να επεξεργαστείτε το αρχείο bintrayv1.gradle το πρώτο μπλοκ κώδικα θα πρέπει να μοιάζει με αυτό:

αν (project.hasProperty ("android")) {// Βιβλιοθήκες Android
    πηγές εργασίαςJar (type: Jar) {
        classifier = 'πηγές'
        από το
    }}

    εργασία javadoc (τύπος: Javadoc) {
        source = android.sourceSets.main.java.srcDirs
        classpath + = project.files (android.getBootClasspath () join. (File.pathSeparator))
    }}
}}

Πρέπει να κάνετε τις παρακάτω αλλαγές.

αν (project.hasProperty ("kotlin")) {// βιβλιοθήκες Kotlin
    πηγές εργασίαςJar (type: Jar) {
        classifier = 'πηγές'
        από το
    }}

    εργασία javadoc (τύπος: Javadoc, dependOn: dokka) {

    }}
} else if (project.hasProperty ("android")) {// Βιβλιοθήκες Android
    πηγές εργασίαςJar (type: Jar) {
        classifier = 'πηγές'
        από το
    }}

    εργασία javadoc (τύπος: Javadoc, dependOn: dokka) {
        source = android.sourceSets.main.java.srcDirs
        classpath + = project.files (android.getBootClasspath () join. (File.pathSeparator))
    }}
}}

Βασικά, λέμε ότι χρησιμοποιεί το έργο javadoc εξαρτάται από το dokka. Η εργασία javadoc δεν κάνει τίποτα άλλο εκτός από την ενεργοποίηση του dokka, το οποίο έχει διαμορφωθεί με το lib / build.gradle.

Θα πρέπει να τοποθετήσετε το επεξεργασμένο αρχείο κάτω από τον κατάλογό σας lib και στη συνέχεια το αίτημά σας θα πρέπει να μοιάζει με αυτό:

ισχύουν από: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/installv1.gradle'
ισχύουν από: 'bintrayv1.gradle'

Αυτό πρέπει να είναι! Θα πρέπει τώρα να είστε σε θέση να δημιουργήσετε και να αναπτύξετε τη βιβλιοθήκη σας σε bintray.

Τελικά

Δεν έβαλα ολόκληρο τον κώδικα μου, ελπίζω να έρθω σε επαφή με το inthecheesefactory και να τους ενημερώσω για το blog και τον κώδικα τους. Αν αυτό λειτουργεί ή όχι, θα αναφέρω εδώ. Όπως το άρθρο, έτσι ώστε να είστε σίγουροι ότι δεν θα χάσετε το Android που ενημερώθηκε.

Και, τέλος, Για να χτίσετε τις εξαιρετικές εφαρμογές Android, διαβάστε περισσότερα από τα άρθρα μου.

Ναι! το φτάσατε στο τέλος! Θα πρέπει να σταματήσουμε! μπορείτε να με ακολουθήσετε στο Medium, στο LinkedIn, στο Google+ ή στο Twitter.