Я публикую библиотеку с открытым исходным кодом для 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
}