Skip to content

Commit ea66c16

Browse files
committed
Fix publish script
1 parent ab60806 commit ea66c16

File tree

4 files changed

+65
-137
lines changed

4 files changed

+65
-137
lines changed

build.gradle

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,6 @@ allprojects {
99

1010
dependencies {
1111
classpath 'com.android.tools.build:gradle:8.3.0'
12-
classpath "de.marcphilipp.gradle:nexus-publish-plugin:0.4.0"
13-
classpath "io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.21.1"
14-
classpath 'digital.wup:android-maven-publish:3.6.2'
1512
}
1613
}
1714

publish.gradle

Lines changed: 58 additions & 134 deletions
Original file line numberDiff line numberDiff line change
@@ -1,143 +1,67 @@
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
4313
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)
8652
}
8753
}
8854
}
8955
}
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()
10964
}
11065
}
11166
}
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
14367
}

sample/build.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ android {
66
viewBinding = true
77
}
88

9+
lintOptions {
10+
abortOnError false
11+
}
12+
913
defaultConfig {
1014
namespace 'com.cloudinary.sample'
1115
compileSdk 34

ui/build.gradle

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ android {
44
namespace 'com.cloudinary.android.ui'
55
compileSdk 34
66

7+
lintOptions {
8+
abortOnError false
9+
}
710

811
defaultConfig {
912
minSdkVersion 21

0 commit comments

Comments
 (0)