/Java-maven-library-publisher

GitHub Actions for deploy automatically your java maven library to GitHub Packages and Maven Central.

Primary LanguageJavaApache License 2.0Apache-2.0

Build and publish automatically your Java Maven Library to GitHub Packages and Maven Central.

GitHub action to build a Java Maven library and publish it to GitHub Packages and Maven Central.

Requirements

Configurations

GitHub secrets

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
  • GPG_PASSPHRASE with the passphrase of your gpg key

pom.xml

Inside your pom.xml file you need to set:

For more details you can look pom-example.xml

Usage

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/Java-maven-library-publisher@v1.0.3
        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

Badge

image

Don't forget to add your own MavenCentral badges to your readme 😉:

License

The Dockerfile and associated scripts and documentation in this project are released under the Apache 2.0 License.