1
- apply plugin : ' signing'
2
- apply plugin : " de.marcphilipp.nexus-publish"
3
- apply plugin : " io.codearte.nexus-staging"
4
- apply plugin : ' digital.wup.android-maven-publish'
5
-
6
- if (hasProperty(" ossrhTokenPassword" )) {
7
- signing {
8
- sign configurations. archives
9
- }
10
-
11
- nexusStaging {
12
- packageGroup = group
13
- username = project. hasProperty(" ossrhToken" ) ? project. ext[" ossrhToken" ] : " "
14
- password = project. hasProperty(" ossrhTokenPassword" ) ? project. ext[" ossrhTokenPassword" ] : " "
15
- }
16
-
17
- publishing {
18
- publications {
19
- mavenAar(MavenPublication ) {
20
- from components. android
21
-
22
- artifact(" $buildDir /outputs/aar/$jarFileName -release.aar" )
23
-
24
- artifact(file(" $buildDir /libs/$jarFileName -$version -javadoc.jar.asc" )) {
25
- classifier = ' javadoc'
26
- extension = ' jar.asc'
27
- }
28
-
29
- artifact(file(" $buildDir /libs/$jarFileName -$version -sources.jar.asc" )) {
30
- classifier = ' sources'
31
- extension = ' jar.asc'
32
- }
33
-
34
- artifact(file(" $buildDir /outputs/aar/$jarFileName -release.aar.asc" )) {
35
- classifier = null
36
- extension = ' aar.asc'
37
- }
38
-
39
- pom {
40
- name = publishArtifactName
41
- packaging = ' aar'
42
- groupId = publishGroupId
1
+ apply plugin : ' maven-publish'
2
+
3
+ // Simple module-level publishing for manual upload to Central Portal
4
+ if (hasProperty(" ossrhTokenPassword" ) || hasProperty(" centralPassword" )) {
5
+
6
+ // Use afterEvaluate to ensure Android components are available
7
+ afterEvaluate {
8
+ publishing {
9
+ publications {
10
+ mavenAar(MavenPublication ) {
11
+ // Set correct coordinates
12
+ groupId = group
43
13
artifactId = publishArtifactId
44
- description = publishDescription
45
- url = githubUrl
46
- licenses {
47
- license {
48
- name = licenseName
49
- url = licenseUrl
50
- }
51
- }
52
-
53
- developers {
54
- developer {
55
- id = developerId
56
- name = developerName
57
- email = developerEmail
58
- }
59
- }
60
- scm {
61
- connection = scmConnection
62
- developerConnection = scmDeveloperConnection
63
- url = scmUrl
64
- }
65
- }
66
-
67
- pom. withXml {
68
- def pomFile = file(" ${ project.buildDir} /generated-pom.xml" )
69
- writeTo(pomFile)
70
- def pomAscFile = signing. sign(pomFile). signatureFiles[0 ]
71
- artifact(pomAscFile) {
72
- classifier = null
73
- extension = ' pom.asc'
74
- }
75
- }
76
-
77
- project. tasks. signArchives. signatureFiles. each {
78
- artifact(it) {
79
- def matcher = it. file =~ / -(sources|javadoc)\. jar\. asc$/
80
- if (matcher. find()) {
81
- classifier = matcher. group(1 )
82
- } else {
83
- classifier = null
84
- }
85
- extension = ' jar.asc'
14
+ version = version
15
+
16
+ // Include the AAR artifact and components properly for Android
17
+ from components. release
18
+
19
+ pom. withXml {
20
+ def root = asNode()
21
+
22
+ // Add name element properly
23
+ def nameNode = root. appendNode(' name' )
24
+ nameNode. setValue(publishArtifactName)
25
+
26
+ // Add description
27
+ def descNode = root. appendNode(' description' )
28
+ descNode. setValue(publishDescription)
29
+
30
+ // Add URL
31
+ def urlNode = root. appendNode(' url' )
32
+ urlNode. setValue(githubUrl)
33
+
34
+ // Add licenses
35
+ def licensesNode = root. appendNode(' licenses' )
36
+ def licenseNode = licensesNode. appendNode(' license' )
37
+ licenseNode. appendNode(' name' , ' MIT License' )
38
+ licenseNode. appendNode(' url' , ' https://opensource.org/licenses/MIT' )
39
+
40
+ // Add developers
41
+ def developersNode = root. appendNode(' developers' )
42
+ def developerNode = developersNode. appendNode(' developer' )
43
+ developerNode. appendNode(' id' , ' cloudinary' )
44
+ developerNode. appendNode(' name' , ' Cloudinary' )
45
+ developerNode. appendNode(' email' , ' info@cloudinary.com' )
46
+
47
+ // Add SCM
48
+ def scmNode = root. appendNode(' scm' )
49
+ scmNode. appendNode(' connection' , scmConnection)
50
+ scmNode. appendNode(' developerConnection' , scmDeveloperConnection)
51
+ scmNode. appendNode(' url' , githubUrl)
86
52
}
87
53
}
88
54
}
89
55
}
90
-
91
- nexusPublishing {
92
- repositories {
93
- sonatype {
94
- username = project. hasProperty(" ossrhToken" ) ? project. ext[" ossrhToken" ] : " "
95
- password = project. hasProperty(" ossrhTokenPassword" ) ? project. ext[" ossrhTokenPassword" ] : " "
96
- }
97
- }
98
- }
99
-
100
- model {
101
- tasks. generatePomFileForMavenAarPublication {
102
- destination = file(" $buildDir /generated-pom.xml" )
103
- }
104
- tasks. publishMavenAarPublicationToMavenLocal {
105
- dependsOn project. tasks. signArchives
106
- }
107
- tasks. publishMavenAarPublicationToSonatypeRepository {
108
- dependsOn project. tasks. signArchives
56
+ }
57
+
58
+ // Ensure Android generates sources and javadoc JARs
59
+ android {
60
+ publishing {
61
+ singleVariant(' release' ) {
62
+ withSourcesJar()
63
+ withJavadocJar()
109
64
}
110
65
}
111
66
}
112
- }
113
-
114
- task signAar (type : Sign ) {
115
- def aarFile = file(" $buildDir /outputs/aar/$jarFileName -release.aar" )
116
- if (aarFile. exists()) {
117
- sign aarFile
118
- } else {
119
- // throw new GradleException("The artifact file does not exist: $aarFile")
120
- }
121
- }
122
-
123
- task sourcesJar (type : Jar ) {
124
- from android. sourceSets. main. java. srcDirs
125
- archiveClassifier = ' sources'
126
- }
127
- task javadoc (type : Javadoc ) {
128
- source = android. sourceSets. main. java. srcDirs
129
- classpath + = project. files(android. getBootClasspath(). join(File . pathSeparator))
130
- android. libraryVariants. all { var -> classpath + = var. javaCompileProvider. get(). classpath }
131
- }
132
- task javadocJar (type : Jar , dependsOn : javadoc) {
133
- archiveClassifier = ' javadoc'
134
- from javadoc. destinationDir
135
- }
136
-
137
- artifacts {
138
- archives javadocJar, sourcesJar
139
- }
140
-
141
- tasks. withType(GenerateModuleMetadata ) {
142
- enabled = false
143
67
}
0 commit comments