11/*
2- * Copyright 2018-2023 Pranav Pandey
2+ * Copyright 2018-2024 Pranav Pandey
33 *
44 * Licensed under the Apache License, Version 2.0 (the "License");
55 * you may not use this file except in compliance with the License.
@@ -22,28 +22,45 @@ version = mavenVersion
2222
2323// Android libraries
2424if (project. hasProperty(" android" )) {
25- task sourcesJar( type : Jar ) {
25+ tasks . register( ' sourcesJar ' , Jar ) {
2626 archiveClassifier. set(" sources" )
2727 from android. sourceSets. main. java. srcDirs
2828 }
2929
30- task javadoc(type : Javadoc ) {
31- dependsOn(" generateReleaseRFile" )
30+ tasks. register(' javadoc' , Javadoc ) {
31+ dependsOn " generateReleaseRFile"
32+ title " ${ referenceTitle} <h4>${ versionDesc} </h4><h5>${ mavenVersion} </h5>"
33+ failOnError = false
3234
33- source = android. sourceSets. main. java. srcDirs
34- classpath + = project. files(android. getBootClasspath(). join(File . pathSeparator))
35+ source = android. sourceSets. main. java. sourceFiles
3536 doNotTrackState(" Javadoc needs to be generated every time." )
3637
37- failOnError = false
38+ if (JavaVersion . current(). isJava8Compatible()) {
39+ options. addStringOption(' Xdoclint:none' , ' -quiet' )
40+ }
41+
42+ options. memberLevel = JavadocMemberLevel . PROTECTED
43+ exclude " **/R" , " **/R.**" , " **/R\$ **" , " **/BuildConfig*"
44+
45+ options. windowTitle = " ${ referenceTitle} "
46+ options. links(' http://docs.oracle.com/javase/8/docs/api' ,
47+ ' http://docs.oracle.com/javase/17/docs/api' )
48+ options. links(' https://developer.android.com/reference' )
49+ options. linksOffline(' https://developer.android.com/reference' ,
50+ ' https://developer.android.com/reference/androidx' )
3851 }
3952} else { // Java libraries
40- task sourcesJar(type : Jar , dependsOn : classes) {
53+ tasks. register(' sourcesJar' , Jar ) {
54+ dependsOn classes
55+
4156 archiveClassifier. set(" sources" )
4257 from sourceSets. main. allSource
4358 }
4459}
4560
46- task javadocJar (type : Jar , dependsOn : javadoc) {
61+ tasks. register(' javadocJar' , Jar ) {
62+ dependsOn javadoc
63+
4764 archiveClassifier. set(" javadoc" )
4865 from javadoc. destinationDir
4966}
@@ -86,7 +103,7 @@ publishing {
86103
87104 // SCM
88105 def scm = asNode(). appendNode(' scm' )
89- scm. appendNode(' connection' , " ${ gitUrl} .git" )
106+ scm. appendNode(' connection' , " scm:git: ${ gitUrl} .git" )
90107 scm. appendNode(' developerConnection' , gitUrl)
91108 scm. appendNode(' url' , siteUrl)
92109
@@ -96,7 +113,7 @@ publishing {
96113 dependenciesNode = asNode(). appendNode(' dependencies' )
97114 }
98115
99- // Add all that are 'compile'
116+ // Add all that are 'compile' dependencies.
100117 configurations. api. allDependencies. each {
101118 def dependencyNode = dependenciesNode. appendNode(' dependency' )
102119 dependencyNode. appendNode(' groupId' , it. group)
@@ -117,13 +134,16 @@ signing {
117134}
118135
119136afterEvaluate { project ->
120- // Fix javadoc generation
137+ // Fix javadoc generation.
121138 javadoc. classpath + = files(android. libraryVariants. collect { variant ->
122139 variant. javaCompileProvider. get(). classpath. files
123140 })
124141
125142 def pomTask = " generatePomFileForLibraryPublication"
143+ def dependencies = [javadocJar, sourcesJar, assembleRelease, pomTask]
126144
127- // Convenience task to prepare everything we need for releases
128- task prepareArtifacts(dependsOn : [javadocJar, sourcesJar, assembleRelease, pomTask]) { }
145+ // Convenience task to prepare everything we need for releases.
146+ tasks. register(' prepareArtifacts' ) {
147+ dependsOn dependencies
148+ }
129149}
0 commit comments