Как я могу связать javadoc / sources с библиотекой aar - PullRequest
1 голос
/ 27 февраля 2020

Я публикую библиотеку с открытым исходным кодом для Android. Я хочу упаковать исходники / javado c, чтобы пользователи могли просматривать документацию при использовании автозаполнения в Android Studio.

Я не хочу, чтобы пользователи вручную импортировали файлы sources.jar ; Я хочу, чтобы это произошло автоматически. Эта ссылка утверждает, что это можно сделать легко, если код имеет открытый исходный код, но в ней не уточняется, как.

Кто-нибудь может объяснить, как? Методы, которые я нашел в ответах на SO и Google, не работают для меня. Вот мой build.gradle , который пытается включить sources.jar, но он никогда не включается в финальный .aar:

apply plugin: 'com.android.library'

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.3"
    defaultConfig {
        minSdkVersion 18
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

}

dependencies {
    api fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.1.0'
    testImplementation 'junit:junit:4.13'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}

task sourcesJar(type: Jar) {
    from android.sourceSets.main.java.srcDirs
    classifier = 'sources'
}

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

task javadocJar(type: Jar, dependsOn: javadoc) {
    classifier = 'javadoc'
    from javadoc.destinationDir
}

task classesJar(type: Jar) {
    from "$buildDir/intermediates/classes/release"
}

artifacts {
    archives classesJar
    archives javadocJar
    archives sourcesJar
}
...