Own a maven repository, like a boss! – Part 2


The world of artifacts and the way they make the life of a developer simpler, fascinates me to a great extent.

For the same reason I have gone through a lot of good articles online, which explain how the whole process works. However most of the documentation is either not up to date or lacks proper explanation. Personally all I care about is how does it work and how can I make it simpler. Hence I set out to try and implement the whole process on my own.

We have already covered in Part-1 of this series the process of how to create a maven repository hosted on github and this part builds upon that.

The next part is actually the simpler step - To consume these artifacts which are hosted on a maven repository in your android project.

The basic steps required are as follows :

  • Step 1

    Goto your maven repository on github and open up your releases folder via the browser.

  • Step 2

    Copy the URL in the address bar. It should look like below

    https://github.com/<username>/<mavenrepo>/tree/master/releases
    
  • Step 3

    Now replace the tree word in the url with raw

    # From
    https://github.com/<username>/<mavenrepo>/tree/master/releases
    
    # to
    https://github.com/<username>/<mavenrepo>/raw/master/releases
    
    # and copy this new url.
    
  • Step 4

    Now goto your Android Project and open up your build.gradle file for the module where you want to include the artifact (i.e app/library).

  • Step 5

    Now copy the below to the build.gradle file with the appropriate url for the maven repository as obtained in Step-3.

    repositories {
    maven {
        url "https://github.com/<username>/<mavenrepo>/raw/master/releases"
    }
    }
    
  • Step 6

    Next , add the dependency as you would normally

    dependencies {
    compile 'com.github.<username>:<artifact_name>:<version>'
    }
    

where <version> has to be of the form <major>.<minor>.<patch> i.e 1.0.0


In Summary

You just learned how to use artifacts from your own github account as a maven repository and in essence bypassed the complexity of getting artifacts into the Maven Central/Jcenter.

For reference you can have a look at my own maven repository on github

However as you would see this is a very limiting way of accessing artifacts. The developer is supposed to include your maven url under repository section which is …a bit of extra work , right ?

As a developer we are all very lazy. We want to cut this extra work down to only compiling our artifact as a dependency with a single line of code

compile 'com.github.<username>:<artifact_name>:<version>'

Well this is where Maven Central/Jcenter step in. A lot of information on them in the next part of this series.

Till then keep calm and crush c.o.d.e !

Nishant Srivastava

Creative sleeper. Avid dreamer.

Vancouver, BC http://nisrulz.com/