Skip to content

Commit c64b649

Browse files
committed
chore: migrating to vanniktech plugin
1 parent 4171a1a commit c64b649

File tree

6 files changed

+50
-82
lines changed

6 files changed

+50
-82
lines changed

.github/workflows/release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ jobs:
3333
gpg --quiet --output $GITHUB_WORKSPACE/release.gpg --dearmor ./release.asc
3434
3535
echo "Build and publish"
36-
sed -i -e "s,sonatypeUsername=,sonatypeUsername=$SONATYPE_USERNAME,g" gradle.properties
36+
sed -i -e "s,mavenCentralUsername=,mavenCentralUsername=$SONATYPE_USERNAME,g" gradle.properties
3737
SONATYPE_PASSWORD_ESCAPED=$(printf '%s\n' "$SONATYPE_PASSWORD" | sed -e 's/[\/&]/\\&/g')
38-
sed -i -e "s,sonatypePassword=,sonatypePassword=$SONATYPE_PASSWORD_ESCAPED,g" gradle.properties
38+
sed -i -e "s,mavenCentralPassword=,mavenCentralPassword=$SONATYPE_PASSWORD_ESCAPED,g" gradle.properties
3939
sed -i -e "s,signing.keyId=,signing.keyId=$GPG_KEY_ID,g" gradle.properties
4040
sed -i -e "s,signing.password=,signing.password=$GPG_PASSWORD,g" gradle.properties
4141
sed -i -e "s,signing.secretKeyRingFile=,signing.secretKeyRingFile=$GITHUB_WORKSPACE/release.gpg,g" gradle.properties

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,5 @@ secure.properties
1515

1616
# macOS-specific files
1717
.DS_Store
18+
19+
.kotlin

.releaserc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ plugins:
1515
to: ":${nextRelease.version}"
1616
- - "@semantic-release/exec"
1717
- prepareCmd: "./gradlew build --warn --stacktrace"
18-
publishCmd: "./gradlew publish --warn --stacktrace"
18+
publishCmd: "./gradlew publishToMavenCentral --warn --stacktrace"
1919
- - "@semantic-release/git"
2020
- assets:
2121
- "build.gradle.kts"

build.gradle.kts

Lines changed: 34 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,13 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15-
import com.google.maps.android.rx.androidExtension
1615
import com.google.maps.android.rx.artifactId
16+
import com.vanniktech.maven.publish.MavenPublishBaseExtension
17+
import org.gradle.api.tasks.testing.Test
18+
import org.gradle.testing.jacoco.plugins.JacocoPluginExtension
19+
import org.gradle.testing.jacoco.plugins.JacocoTaskExtension
20+
1721

18-
// Top-level build file where you can add configuration options common to all sub-projects/modules.
1922
buildscript {
2023
repositories {
2124
google()
@@ -32,12 +35,11 @@ buildscript {
3235
}
3336

3437
plugins {
35-
`maven-publish`
36-
signing
3738
id("org.jetbrains.dokka") version "2.0.0"
39+
id("com.vanniktech.maven.publish") version "0.34.0" apply false
3840
}
3941

40-
// Shared configs across subprojects
42+
// Shared configs
4143
allprojects {
4244
group = "com.google.maps.android"
4345
version = "1.0.0"
@@ -54,21 +56,13 @@ subprojects {
5456

5557
apply(plugin = "com.android.library")
5658
apply(plugin = "kotlin-android")
57-
apply(plugin = "maven-publish")
5859
apply(plugin = "org.jetbrains.dokka")
59-
apply(plugin = "signing")
60+
apply(plugin = "com.vanniktech.maven.publish")
6061
apply(plugin = "com.mxalbert.gradle.jacoco-android")
6162

62-
63-
val sourcesJar = task<Jar>("sourcesJar") {
64-
archiveClassifier.set("sources")
65-
val libraryExtension = (project.androidExtension as com.android.build.gradle.LibraryExtension)
66-
from(libraryExtension.sourceSets["main"].java.srcDirs)
67-
}
68-
63+
// Jacoco setup
6964
configure<JacocoPluginExtension> {
7065
toolVersion = "0.8.7"
71-
7266
}
7367

7468
tasks.withType<Test>().configureEach {
@@ -78,77 +72,40 @@ subprojects {
7872
}
7973
}
8074

75+
extensions.configure<MavenPublishBaseExtension> {
76+
publishToMavenCentral()
77+
signAllPublications()
8178

82-
val dokkaHtml = tasks.named<org.jetbrains.dokka.gradle.DokkaTask>("dokkaHtml")
83-
val dokkaJavadoc = tasks.named<org.jetbrains.dokka.gradle.DokkaTask>("dokkaJavadoc")
84-
val javadocJar = task<Jar>("javadocJar") {
85-
dependsOn(dokkaHtml)
86-
dependsOn(dokkaJavadoc)
87-
archiveClassifier.set("javadoc")
88-
from(buildDir.resolve("dokka/javadoc"))
89-
}
79+
pom {
80+
name.set(project.name)
81+
description.set("RxJava bindings for the Maps SDK for Android")
82+
url.set("https://github.com/googlemaps/android-maps-rx")
9083

91-
publishing {
92-
publications {
93-
create<MavenPublication>("aar") {
94-
groupId = project.group as String
95-
artifactId = project.artifactId
96-
version = project.version as String
97-
98-
pom {
99-
name.set(project.name)
100-
description.set("RxJava bindings for the Maps SDK for Android")
101-
url.set("https://github.com/googlemaps/android-maps-rx")
102-
103-
scm {
104-
connection.set("scm:[email protected]:googlemaps/android-maps-rx.git")
105-
developerConnection.set("scm:[email protected]:googlemaps/android-maps-rx.git")
106-
url.set("https://github.com/googlemaps/android-maps-rx")
107-
}
108-
109-
licenses {
110-
license {
111-
name.set("The Apache Software License, Version 2.0")
112-
url.set("http://www.apache.org/licenses/LICENSE-2.0.txt")
113-
distribution.set("repo")
114-
}
115-
}
116-
117-
organization {
118-
name.set("Google Inc.")
119-
url.set("https://developers.google.com/maps")
120-
}
121-
122-
developers {
123-
developer {
124-
name.set("Google Inc.")
125-
}
126-
}
84+
licenses {
85+
license {
86+
name.set("The Apache Software License, Version 2.0")
87+
url.set("http://www.apache.org/licenses/LICENSE-2.0.txt")
88+
distribution.set("repo")
12789
}
90+
}
12891

129-
afterEvaluate {
130-
artifact(buildDir.resolve("outputs/aar/${project.name}-release.aar"))
92+
scm {
93+
connection.set("scm:[email protected]:googlemaps/android-maps-rx.git")
94+
developerConnection.set("scm:[email protected]:googlemaps/android-maps-rx.git")
95+
url.set("https://github.com/googlemaps/android-maps-rx")
96+
}
13197

132-
artifact(javadocJar)
133-
artifact(sourcesJar)
134-
}
98+
organization {
99+
name.set("Google Inc.")
100+
url.set("https://developers.google.com/maps")
135101
}
136-
}
137102

138-
repositories {
139-
maven {
140-
name = "mavencentral"
141-
url = uri("https://ossrh-staging-api.central.sonatype.com/service/local/staging/deploy/maven2/")
142-
credentials {
143-
username = properties["sonatypeUsername"] as String?
144-
password = properties["sonatypePassword"] as String
103+
developers {
104+
developer {
105+
id.set("google")
106+
name.set("Google Inc.")
145107
}
146108
}
147109
}
148110
}
149-
150-
// Signing
151-
signing {
152-
sign(publishing.publications.findByName("aar"))
153-
}
154111
}

gradle.properties

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,11 @@ signing.password=
2727
signing.secretKeyRingFile=
2828

2929
sonatypeUsername=
30-
sonatypePassword=
30+
sonatypePassword=
31+
32+
mavenCentralUsername=
33+
mavenCentralPassword=
34+
35+
# Add a property to enable automatic release to Maven Central (optional, but good for CI)
36+
# If true, publishToMavenCentral will also close and release the staging repository
37+
mavenCentralAutomaticRelease=false

gradle/libs.versions.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ mapsKtx = "5.2.0"
1616
volley = "1.2.1"
1717
mapsRx = "1.0.0"
1818
placesRx = "1.0.0"
19+
gradleMavenPublishPlugin = "0.34.0"
1920

2021
[libraries]
2122
mapsRx = { module = "com.google.maps.android:maps-rx", version.ref = "mapsRx" }
@@ -36,4 +37,5 @@ kotlin-gradle-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", v
3637
dokka-gradle-plugin = { module = "org.jetbrains.dokka:dokka-gradle-plugin", version.ref = "dokka-gradle-plugin" }
3738
jacoco-android = { module = "com.mxalbert.gradle:jacoco-android", version.ref = "jacoco-android" }
3839
secrets-gradle-plugin = { module = "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin", version.ref = "secrets-gradle-plugin" }
39-
gradle = { module = "com.android.tools.build:gradle", version.ref = "gradle" }
40+
gradle = { module = "com.android.tools.build:gradle", version.ref = "gradle" }
41+
gradle-maven-publish-plugin = { module = "com.vanniktech:gradle-maven-publish-plugin", version.ref = "gradleMavenPublishPlugin" }

0 commit comments

Comments
 (0)