AxonFramework-Full — publishing pipeline
./gradlew publish to Maven Central
Sonatype has no official Gradle plugin for Central Portal publishing the way central-publishing-maven-plugin
covers Maven — this is wired through nmcp's settings plugin instead,
layered on Gradle's own maven-publish and signing.
MavenPublicationAny module applying axonframework.published-conventions gets a jar, a sources jar, a
javadoc jar, and POM metadata pointing at this fork's own repo and maintainer.
In-memory PGP keys via Gradle's signing plugin. Absent credentials don't fail the build —
they just mean nothing gets signed, matching upstream's own "sign" Maven profile only activating during
an actual release.
com.gradleup.nmcp.settings aggregates every subprojectApplied once in settings.gradle.kts. Auto-applies com.gradleup.nmcp to every
subproject and com.gradleup.nmcp.aggregation to root — no per-module registration needed as
new modules come online.
publishAggregationToCentralPortalStages every publication locally, zips the bundle, uploads it to the Central Portal publisher API using
a Central Portal user token (CENTRAL_PORTAL_USERNAME/CENTRAL_PORTAL_PASSWORD).
Mirrors upstream's own "one publish execution per reactor build" behavior.
Nothing reaches Central automatically — matches the deliberate, inspected-release ethos of the whole migration.
nmcpSettings { centralPortal { username = providers.environmentVariable(...) } } crashes
Gradle 9.2's configuration cache — cannot serialize object of type ... ValueSourceProvider.
Reproduced directly; nothing documented about it publicly at the time. Fixed with plain
System.getenv(...) instead of the lazy provider.