// 生成javadoc.jar和source.jar if (project.hasProperty("android")) { // Android libraries
println(">>>>>>>>>>>>>>> JavaDoc for AndroidLibrary, Java Version:" + JavaVersion.current().getMajorVersion())
// 打包source源码 task sourcesJar(type: Jar) { classifier = 'sources' from android.sourceSets.main.java.srcDirs }
// 打包class的jar包 if (project.hasProperty("zipFile")) { task makeJar(type: Jar) { from zipTree(file(zipFile)) destinationDir = file("build") } }
android.libraryVariants.all { variant -> if (variant.name == 'release') { // 只需release的javadoc task("generate${variant.name.capitalize()}Javadoc", type: Javadoc) {
title "API Documentation (${project.android.defaultConfig.versionName})" group "ApiDoc" description "Generates Javadoc for $variant.name."
ext.androidJar = "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar" source = variant.sourceSets.collect { it.java.sourceFiles }.inject { m, i -> m + i }
doFirst { classpath = project.files(variant.javaCompileProvider.get().classpath.files, project.android.getBootClasspath()) }
options { encoding "UTF-8" charSet 'UTF-8' author true version true if (project.hasProperty("libName")) { title libName } }
String javaDocsLink = String.format("https://docs.oracle.com/javase/%s/docs/api/", JavaVersion.current().getMajorVersion()) options.links(javaDocsLink)
if (JavaVersion.current().isJava8Compatible()) { options.addStringOption('Xdoclint:none', '-quiet') }
exclude '**/BuildConfig.java' exclude '**/R.java' } task("javadoc${variant.name.capitalize()}Jar", type: Jar, dependsOn: "generate${variant.name.capitalize()}Javadoc") { // 打包javadoc的jar包 getArchiveClassifier().value('javadoc') from tasks.getByName("generate${variant.name.capitalize()}Javadoc").destinationDir } artifacts { archives tasks.getByName("javadoc${variant.name.capitalize()}Jar") archives sourcesJar archives makeJar } } } } else { println(">>>>>>>>>>>>>>> JavaDoc for JavaLibrary") // Java libraries task sourcesJar(type: Jar, dependsOn: classes) { classifier = 'sources' from sourceSets.main.allSource } task javadocJar(type: Jar, dependsOn: javadoc) { classifier = 'javadoc' from javadoc.destinationDir }
artifacts { archives javadocJar archives sourcesJar } }
|