Bjorn Roche
Bjorn Roche

Reputation: 11469

Can I use a GitHub project directly in Maven?

I am interested in using a project on GitHub as a dependency in my project. The GitHub project has a pom file. Can I modify my pom file to use this project? If so, how? If not, what is my best course of action?

Upvotes: 67

Views: 32911

Answers (3)

jws
jws

Reputation: 2784

@wener's answer is very helpful, but leaves some mystery.

This real example might save some time:

<project ... >
    <repositories>
        <repository>
            <id>jitpack.io</id>
            <url>https://jitpack.io</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>

            <!-- groupId is https://github.com/fabric8io/kubernetes-client -->
            <groupId>com.github.fabric8io.kubernetes-client</groupId>

            <!-- module is a directory within the repo, containing pom.xml -->
            <artifactId>kubernetes-model-generator-client</artifactId>

        </dependency>
    </dependencies>

 . . .

Make sure you are signed into GitHub.

You can also find a tag index page by cutting at the tag within the URL, like https://jitpack.io/com/github/fabric8io/kubernetes-client/. In my example, I figured out if "v" from "v6.4.1" had to be removed or not, since there is a release with the v and a tag without it.

More details: jitpack.io page

Upvotes: 0

wener
wener

Reputation: 7770

Try jitpack, you just need to add the dependency, jitpack will build others for you.

From home page:

jitpack
Easy to use package repository for Gradle and Maven projects
JitPack builds GitHub projects on demand and provides ready-to-use packages

HOW

  1. Add repository first
<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>

TIPS:

You can see its build log too https://jitpack.io/com/github/NanoHttpd/nanohttpd/Release-2.1.0/build.log

Upvotes: 154

Dave Newton
Dave Newton

Reputation: 160321

Not in the way I think you mean, AFAIK.

You can use github as a Maven repository--this is not the same thing as directly referencing a project, and that it has a pom file means only that it's a Maven project.

If the project is not available in the central, or other, repository, your best bet may be to clone it, build it, and install it locally. You should confirm that it's truly not available elsewhere.

Upvotes: 29

Related Questions