Java maven library publisher
ActionsBuild automatically Java Maven library and publish it to GitHub Packages and Maven Central
v1.0.4
LatestTags
(2)GitHub action to build a Java Maven library and publish it to GitHub Packages and Maven Central.
- Your project need to use Maven
- Create an account on Sonatype
- Create a JIRA ticket on Sonatype to approve your groupId (io.github.YOUR-GITHUB-USERNAME)
- Generate a gpg key and distribute the public key to a keyserver
Create your GitHub secrets on your repository:
- NEXUS_USERNAME with your username used on Sonatype
- NEXUS_PASSWORD with your password used on Sonatype
- GPG_PRIVATE_KEY with the private key of your generated pgp key
- to get the private key
gpg --armor --export-secret-key <key-id> > privkey.asc
- to get the private key
- GPG_PASSPHRASE with the passphrase of your gpg key
Inside your pom.xml file you need to set:
- the good groupId (io.github.YOUR-GITHUB-USERNAME)
- a description
- a license
- the developers
- issueManagement
- scm
- the ossrhDeploy profile
- the githubDeploy profile
For more details you can look pom-example.xml
The workflow, usually declared in .github/workflows/library-publish.yml
, looks like:
name: Java library publisher
on:
release:
types: [created]
jobs:
publish:
runs-on: ubuntu-latest
steps:
- name: Maven Library build and publish
uses: MathieuSoysal/[email protected]
with:
nexus-username: ${{ secrets.NEXUS_USERNAME }}
nexus-password: ${{ secrets.NEXUS_PASSWORD }}
gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
gpg-passphrase: ${{ secrets.GPG_PASSPHRASE }}
github-token: ${{ secrets.GITHUB_TOKEN }}
java-version: 17
Don't forget to add your own MavenCentral badges to your readme 😉:
- to get your maven-central badge : https://shields.io/category/platform-support
The Dockerfile and associated scripts and documentation in this project are released under the Apache 2.0 License.
Java maven library publisher is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.