Build and publish Maven (Java) artifacts to a remote repository.
A composite GitHub Action that sets up JDK, optionally imports a GPG signing key, configures Maven authentication, and executes Maven goals to publish artifacts. Based on Jenkins JJB Maven release patterns.
- uses: ./.github/actions/maven-publish-action with: server-username: ${{ secrets.OSSRH_USERNAME }} server-password: ${{ secrets.OSSRH_PASSWORD }}
| Input | Required | Default | Description |
|---|---|---|---|
java-version | No | 11 | Java version to use |
java-distribution | No | temurin | Java distribution |
maven-goals | No | -Prelease clean deploy | Maven goals to execute |
maven-settings-file | No | "" | Path to custom Maven settings.xml |
gpg-private-key | No | "" | GPG private key for signing |
gpg-passphrase | No | "" | GPG passphrase |
server-id | No | ossrh | Maven server ID for deployment |
server-username | Yes | — | Maven server username |
server-password | Yes | — | Maven server password |
name: Maven Publish on: push: tags: - "v*" jobs: publish: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: ./.github/actions/maven-publish-action with: java-version: "17" server-username: ${{ secrets.OSSRH_USERNAME }} server-password: ${{ secrets.OSSRH_PASSWORD }} gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} gpg-passphrase: ${{ secrets.GPG_PASSPHRASE }}
actions/setup-java@v4 with the specified distribution and versionMAVEN_USERNAME and MAVEN_PASSWORD environment variables for authenticationpom.xml