Loading Maven dependencies from GitHub [duplicate]

How do I add a Java library from its GitHub repo (the library uses Maven as a build system) as a dependency to my Maven project? Can I do that without downloading and compiling the library?


Now you can import a Java library from a GitHub repo using JitPack. In your pom.xml:

  1. Add repository:
<repository>
    <id>jitpack.io</id>
    <url>https://jitpack.io</url>
</repository>
  1. Add dependency
<dependency>
    <groupId>com.github.User</groupId>
    <artifactId>Repo name</artifactId>
    <version>Release tag</version>
</dependency>

It works because JitPack will check out the code and build it. So you'll end up downloading the jar.
If the project doesn't have a GitHub release then its possible to use a commit id as the version.


At the moment there is no way you can do this unless the maintainer of the library provided a way to do this.

So on the title page of the library the should be an instruction containing the repository address like:

<repositories>
    <repository>
        <id>YOUR-PROJECT-NAME-mvn-repo</id>
        <url>https://raw.github.com/YOUR-USERNAME/YOUR-PROJECT-NAME/mvn-repo/</url>
        <snapshots>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
        </snapshots>
    </repository>
</repositories>

And a dependency name:

<dependency>
     <groupId>...</groupId>
     <artifactId>...</artifactId>
     <version>...</version>
</dependency>

This means that all artifact of your project including your dependency will be searched in this repo.

You could also have a glance at pom.xml to check if there was an effort made to deploy artifacts to a remote repo. Typically the keywords are oss.sonatype.org or raw.github.com like in this case.

FYI, here is a way to provide a repo for your gihub artifact: Hosting a Maven repository on github.


Github now supports packages https://help.github.com/en/github/managing-packages-with-github-packages/configuring-apache-maven-for-use-with-github-packages

You can follow the steps above to deploy Jar files to github properly.