@@ -37,10 +37,61 @@ dependencies {
37
37
implementation " com.android.support:support-annotations:${ supportLibraryVersion} "
38
38
}
39
39
40
+ task androidJavadocs (type : Javadoc ) {
41
+ source = android. sourceSets. main. java. srcDirs
42
+ classpath + = project. files(android. getBootClasspath(). join(File . pathSeparator))
43
+ }
44
+
45
+ task androidJavadocsJar (type : Jar , dependsOn : androidJavadocs) {
46
+ classifier = ' javadoc'
47
+ from androidJavadocs. destinationDir
48
+ }
49
+
50
+ task androidSourcesJar (type : Jar ) {
51
+ classifier = ' sources'
52
+ from android. sourceSets. main. java. srcDirs
53
+ }
54
+
55
+
40
56
publishing {
41
57
publications {
42
- release(MavenPublication ) {
58
+ maven(MavenPublication ) {
59
+ version = android. defaultConfig. versionName
60
+ // Or use same version as in android branch
61
+ // version = android.defaultConfig.versionName
62
+
63
+ artifact androidJavadocsJar
64
+ artifact androidSourcesJar
65
+
66
+ pom. withXml {
67
+ def dependenciesNode = asNode(). appendNode(' dependencies' )
68
+
69
+ // List all compile dependencies and write to POM
70
+ configurations. compile. getAllDependencies(). each { Dependency dep ->
71
+ if (dep. group == null || dep. version == null || dep. name == null || dep. name == " unspecified" )
72
+ return // ignore invalid dependencies
73
+
74
+ def dependencyNode = dependenciesNode. appendNode(' dependency' )
75
+ dependencyNode. appendNode(' groupId' , dep. group)
76
+ dependencyNode. appendNode(' artifactId' , dep. name)
77
+ dependencyNode. appendNode(' version' , dep. version)
43
78
79
+ if (! dep. transitive) {
80
+ // If this dependency is transitive, we should force exclude all its dependencies them from the POM
81
+ def exclusionNode = dependencyNode. appendNode(' exclusions' ). appendNode(' exclusion' )
82
+ exclusionNode. appendNode(' groupId' , ' *' )
83
+ exclusionNode. appendNode(' artifactId' , ' *' )
84
+ } else if (! dep. properties. excludeRules. empty) {
85
+ // Otherwise add specified exclude rules
86
+ def exclusionsNode = dependencyNode. appendNode(' exclusions' )
87
+ dep. properties. excludeRules. each { ExcludeRule rule ->
88
+ def exclusionNode = exclusionsNode. appendNode(' exclusion' )
89
+ exclusionNode. appendNode(' groupId' , rule. group ?: ' *' )
90
+ exclusionNode. appendNode(' artifactId' , rule. module ?: ' *' )
91
+ }
92
+ }
93
+ }
94
+ }
44
95
}
45
96
}
46
97
}
0 commit comments