This file is intentionally ignored by git.
- Use JDK 21 for publishing tasks.
build-export.gradleis the publishing build file.- Signing can come from
gradle.propertiesor environment variables. - Central credentials can come from either:
centralUsernameandcentralPasswordossrhTokenandossrhTokenPasswordCENTRAL_PORTAL_USERNAMEandCENTRAL_PORTAL_PASSWORD
Local helper scripts live under scripts/.
Credentials are read from ~/.m2/maven-central.properties using ossrhUsername and ossrhPassword.
| Script | Purpose |
|---|---|
load-maven-env.sh |
Reads ~/.m2/maven-central.properties, exports CENTRAL_PORTAL_USERNAME, CENTRAL_PORTAL_PASSWORD, SIGNING_PASSWORD, sets JAVA_HOME |
release-preflight.sh |
Checks env vars, Maven settings, and verifies the Central Portal token |
central-auth-check.py |
Verifies credentials against the Central Portal API |
Load the environment before any publish step:
source scripts/load-maven-env.shRun preflight checks before a real release:
source scripts/load-maven-env.sh
scripts/release-preflight.shRun dry runs first to validate task wiring and credentials without uploading artifacts:
source scripts/load-maven-env.sh
gradle -b build-export.gradle --no-daemon -PcentralUsername="$CENTRAL_PORTAL_USERNAME" -PcentralPassword="$CENTRAL_PORTAL_PASSWORD" publishAggregationToCentralPortal --dry-run --console=plain
gradle -b build-export.gradle --no-daemon -PcentralUsername="$CENTRAL_PORTAL_USERNAME" -PcentralPassword="$CENTRAL_PORTAL_PASSWORD" publishAggregationToCentralSnapshots --dry-run --console=plainexport JAVA_HOME=$(/usr/libexec/java_home -v 11)
export PATH="$JAVA_HOME/bin:$PATH"
gradle clean test --console=plainsource scripts/load-maven-env.sh
./scripts/deploy_local_tests.sh
gradle cleanTest test --console=plainsource scripts/load-maven-env.sh
./scripts/deploy_local_tests.sh
gradle cleanTest testsource scripts/load-maven-env.sh
gradle -b build-export.gradle --no-daemon -PcentralUsername="$CENTRAL_PORTAL_USERNAME" -PcentralPassword="$CENTRAL_PORTAL_PASSWORD" publishToMavenLocal --console=plainArtifacts are published under:
~/.m2/repository/org/ic4j/ic4j-java11transport/0.8.0source scripts/load-maven-env.sh
scripts/release-preflight.sh
gradle -b build-export.gradle --no-daemon -PcentralUsername="$CENTRAL_PORTAL_USERNAME" -PcentralPassword="$CENTRAL_PORTAL_PASSWORD" publishAggregationToCentralPortal --console=plainsource scripts/load-maven-env.sh
gradle -b build-export.gradle --no-daemon -PcentralUsername="$CENTRAL_PORTAL_USERNAME" -PcentralPassword="$CENTRAL_PORTAL_PASSWORD" publishAggregationToCentralSnapshots --console=plaingradle -b build-export.gradle tasks --console=plain
gradle -b build-export.gradle publishToMavenLocal --infoRelease checklist for 0.8.0 and later:
- Run
gradle clean teston JDK 11. - Run
source scripts/load-maven-env.sh && ./scripts/deploy_local_tests.sh && gradle cleanTest teston JDK 21. - Run
source scripts/load-maven-env.sh && gradle -b build-export.gradle -PcentralUsername="$CENTRAL_PORTAL_USERNAME" -PcentralPassword="$CENTRAL_PORTAL_PASSWORD" publishToMavenLocalon JDK 21. - Run
source scripts/load-maven-env.sh && scripts/release-preflight.sh. - Publish only after the JDK 11 and 21 validation steps all pass.