fix(sdk-android): unblock publishToMavenLocal on JDK 21+ hosts (#9)

* build(sdk-android): bump AGP 8.11.0 → 8.13.0

Required by com.vanniktech.maven.publish 0.36.0, bumped in the
following commit to pull a Dokka 2.x that handles JDK 21+ version
strings.

* build(sdk-android): migrate to vanniktech 0.36 + Dokka v2 javadoc

Fixes the `javaDocReleaseGeneration` crash on JDK 21+ hosts
(IllegalArgumentException: 25.0.2 in the bundled IntelliJ
JavaVersion.parse). Root cause: AGP's JavaDocGenerationTask pulled
an old Dokka whose vendored util-lang predated JDK 9+ version
strings. Fixed upstream in Dokka 2.1.0 (Kotlin/dokka#4202).

Changes in this commit:
- Bump vanniktech-maven-publish 0.30.0 → 0.36.0, which drops Dokka
  v1 support and the SonatypeHost parameter (Central Portal is
  now the default).
- Apply org.jetbrains.dokka and org.jetbrains.dokka-javadoc 2.2.0
  so the javadoc jar is generated by Dokka 2.x directly, not AGP's
  bundled-Dokka path.
- Switch AndroidSingleVariantLibrary to the explicit
  JavadocJar.Dokka("dokkaGeneratePublicationJavadoc") form; the
  old `publishJavadocJar = true` boolean now maps to plain
  javadoc, which still goes through AGP's broken path on Android
  source sets.
- Enable V2Enabled in gradle.properties (required by 0.36+) and
  silence the transitional opt-in warning.

Verified: `make release-android-local` on openjdk 25.0.2 produces
aar, sources jar, javadoc jar, pom, and module; `./gradlew
:sdk-android:testDebugUnitTest :sidecar:test` still pass.
This commit is contained in:
pj authored and GitHub committed 2026-04-18 15:53:47 +07:00
1 parent 5dbadc4110
commit 3b0393c2bb
2 files changed
+14 -6

No files matched your search

+5
View File
@@ -4,6 +4,11 @@ org.gradle.caching=true
kotlin.code.style=official
android.useAndroidX=true
# Required by vanniktech-maven-publish 0.36+ (Dokka v1 removed); also
# pulls Dokka 2.x, which fixes JavaVersion.parse on JDK 21+ hosts.
org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled
org.jetbrains.dokka.experimental.gradle.pluginMode.noWarn=true
# Single source of truth at release time is the git tag (e.g. v0.1.0 → 0.1.0),
# forwarded via `-Puatu.version=...` or `ORG_GRADLE_PROJECT_uatu.version`.
# The default below only applies to untagged local builds.
+9 -6
View File
@@ -1,10 +1,13 @@
import com.vanniktech.maven.publish.AndroidSingleVariantLibrary
import com.vanniktech.maven.publish.SonatypeHost
import com.vanniktech.maven.publish.JavadocJar
import com.vanniktech.maven.publish.SourcesJar
plugins {
id("com.android.library") version "8.11.0"
id("com.android.library") version "8.13.0"
kotlin("android") version "2.1.21"
id("com.vanniktech.maven.publish") version "0.30.0"
id("com.vanniktech.maven.publish") version "0.36.0"
id("org.jetbrains.dokka") version "2.2.0"
id("org.jetbrains.dokka-javadoc") version "2.2.0"
}
version = findProperty("uatu.version") as String? ?: "0.0.0-dev"
@@ -34,7 +37,7 @@ android {
}
mavenPublishing {
publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL, automaticRelease = true)
publishToMavenCentral(automaticRelease = true)
// Sign only when a release-signing key is provided (env or Gradle
// property). Unsigned runs are useful for `publishToMavenLocal` dry-runs;
@@ -45,9 +48,9 @@ mavenPublishing {
configure(
AndroidSingleVariantLibrary(
javadocJar = JavadocJar.Dokka("dokkaGeneratePublicationJavadoc"),
sourcesJar = SourcesJar.Sources(),
variant = "release",
sourcesJar = true,
publishJavadocJar = true,
),
)