簡體   English   中英

如何使用 JavaDocs 將 AAR 發布到 Maven Local

[英]How do I publish an AAR to Maven Local With JavaDocs

我需要使用 Gradle 將我的 android 庫 (aar) 發布到 Maven 本地倉庫。 但是發布腳本還需要生成 Javadocs,而只包括公共和受保護的方法和類。

似乎無法在網上找到任何信息,尤其是關於 Javadocs 部分的信息...幫助,我以前從未發布過庫。

好的,經過大量研究,我找到了解決方案,所以如果有人需要,我將在這里分享。
(我不希望你像我一樣感到沮喪)。

1) 在項目中創建一個 android 庫作為新模塊。

2) 在您的庫的構建 gradle 中放置以下代碼:

plugins {
    id 'com.android.library'
    id 'maven-publish'
}

android {
   nothing special here...
}

這是創建 Javadocs 的代碼(仍在 build.gradle 中):

task androidJavadocs(type: Javadoc){
    source = android.sourceSets.main.java.srcDirs

    classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
    android.libraryVariants.all{ variant->
        if (variant.name == 'release'){
            owner.classpath += variant.javaCompileProvider.get().classpath
        }
    }
    // excluding a specific class from being documented
    exclude '**/NameOfClassToExclude.java'

    title = null

    options{
        doclet = "com.google.doclava.Doclava"
        docletpath = [file("libs/doclava-1.0.6.jar")]
        noTimestamp = false

        // show only Protected & Public
        memberLevel = JavadocMemberLevel.PROTECTED
    }

}

task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs){
    archiveClassifier.set('javadoc')
    from androidJavadocs.destinationDir
}


task androidSourcesJar(type: Jar){
    archiveClassifier.set('sources')
    from android.sourceSets.main.java.srcDirs
}

這是將庫發布到 MavenLocal(仍在 build.gradle 中):

   afterEvaluate {
        publishing{
            publications{
                release(MavenPublication){
                    groupId = "com.example.mylibrary"
                    artifactId = "mycoollibrary"
                    version = "1.0"
                    // Applies the component for the release build variant
                    from components.release
                    // Adds javadocs and sources as separate jars.
                    artifact androidSourcesJar
                    artifact androidJavadocsJar
                }
            }
        }
    }

您的默認依賴項塊:

dependencies {
       your dependencies...
    }

3) 現在您可以下載doclava doclet
提取 zip,復制 doclava-1.0.6.jar 並將其粘貼到 LibraryName/libs 文件夾中(可以使用項目視圖找到)。 如果你想能夠使用@hide,你只需要 doclava。 使用此注釋,您可以從 Javadocs 中排除特定方法。

4) 構建和發布你的庫:在 android studio 右上角找到 gradle 選項卡,或從工具欄 View->Tool Windows->Gradle 中找到它。
現在找到你的庫 -> 任務 -> 發布 -> publishReleasePublicationToMavenLocal。

5)從另一個項目使用庫: Go 到 settings.gradle 文件(消費項目)並添加 MavenLocal() 作為dependencyResolutionManagement塊中的第一個存儲庫。
在模塊內部構建 gradle 將您的庫添加為依賴項:

dependencies{
    implementation 'com.example.mylibrary:mycoollibrary:1.0'
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM