Third-Party JARs

Publishing Third-Party JARs to GitHub Packages: A Maven Guide

by: Jerrish Varghese

April 26, 2024


In the world of Java development, we often find ourselves working with third-party libraries that aren't available in public Maven repositories. Today, we'll explore how to publish these closed-source JAR files to GitHub Packages and use them in other Maven projects.

Why GitHub Packages?

GitHub Packages provides a convenient way to host and manage your private dependencies. It integrates seamlessly with your GitHub repositories and offers fine-grained access control.

The Traditional Approach

Typically, publishing to GitHub Packages involves modifying your settings.xml file with your GitHub credentials. While effective, this method isn't always ideal, especially in CI/CD environments or when you prefer keeping credentials separate from your project configuration.

A More Flexible Solution: Environment Variables

Let's walk through a more flexible approach using environment variables. This method allows you to publish and consume packages without modifying your Maven settings file.

Step 1: Set Up Environment Variables

First, set the following environment variables:


Ensure your personal access token has the write:packages and read:packages scopes.

Step 2: Configure Your Project's pom.xml

Modify your pom.xml to use these environment variables:

      <name>GitHub Packages</name>

Step 3: Deploy Your JAR

Use this command to deploy your third-party JAR:

mvn deploy:deploy-file -DgroupId=com.example -DartifactId=your-artifact -Dversion=1.0.0 -Dpackaging=jar -Dfile=/path/to/your/jar/file -DrepositoryId=github -Durl=${GITHUB_ACTOR}/YOUR_REPOSITORY

Step 4: Consume the Package

In projects where you want to use this JAR, add this to your pom.xml:



Benefits of This Approach

  1. Flexibility: Easy to use in different environments without modifying Maven settings.
  2. Security: Keeps credentials separate from project files.
  3. CI/CD Friendly: Simplifies integration with various CI/CD pipelines.


By leveraging environment variables, we've streamlined the process of publishing and consuming third-party JARs via GitHub Packages. This approach offers greater flexibility and security, making it an excellent choice for teams looking to manage their private dependencies efficiently.

Remember, while this method is powerful, always handle your personal access tokens with care.

contact us

Get started now

Get a quote for your project.


Edstem Technologies LLC
254 Chapman Rd, Ste 208 #14734
Newark, Delaware 19702 US


Edstem Technologies Pvt Ltd
Office No-2B-1, Second Floor
Jyothirmaya, Infopark Phase II
Ernakulam, Kerala 682303

© 2024 — Edstem All Rights Reserved

Privacy PolicyTerms of Use