Depend on GitHub repository in Android Studio - android

I'm working on an Android app using Android Studio. So far I've been using mavenCentral to depend on all required libraries but now I'd like to add bitcoinj-0.13-SNAPSHOT dependency which is not yet present on mavenCentral.
Is it possible to somehow instruct gradle to get it directly from GitHub repo which is located here: https://github.com/bitcoinj/bitcoinj/tree/master?

For projects that are not yet in mavenCentral you can use JitPack
It will build the github repo for you and provide you with a dependency.

Related

How to add a github library to my android project?

I would like to add this library so that I can use it on my android project but I can't figure out how to. I get that I'm supposed to clone it but it doesn't say into which directory I should clone it. I'm also not sure if I should use ant or maven, what those are, and how to do that. Any help would be appreciated.
This is the project I'm hoping to add it to:
https://github.com/mikeoles/swiftset
One more project i which is forked from bauerca/drag-sort-listview
is available for drag-sort-listview and dependency of that project is deployed on maven repository
https://github.com/ened/drag-sort-listview
Gradle is available on mvn repository. check this URL
https://mvnrepository.com/artifact/asia.ivity.android/drag-sort-listview/1.0
Add this to your android project
compile group: 'asia.ivity.android', name: 'drag-sort-listview', version: '1.0'
this project is not a library project instead it is an Android app project so what you have to do is to clone the repo https://github.com/mikeoles/SwiftSet.git and open this as an existing Android project.
FYI, you can check android project structure at this link https://developer.android.com/studio/projects/.
You can make the library support gradle. Or copy code to you project(the project has no update in last 5 years).

How to add project hosted on github to android studio gradle dependencies? Pom.xml is available

I want to add this project to my Android Studio Gradle dependencies list. Pom.xml is available here.
How can I do that?
You can't add this library with Gradle.
It doesn't provide an aar format.
You can open an issue and ask the author to push an aar into maven.
Otherwise you have to clone the library and add as a local module.

Android Gradle dependency on a forked GitHub project

I've pulled in a third party custom ListView library into my Android Gradle project. I initially added the project as a gradle library dependency from the jcenter repo. But now I forked the GitHub project and I'm making changes to it.
The original project is no longer maintained, so submitting a pull request is not going to work, I really need my own fork.
What would be a nice way to set this dependency up using Gradle?
I thought of putting the ListView library under the same GitHub repo as my project, but that seems messy, I do want to keep my fork as a separate library.
Another thing I thought about was checking them both out at the same level, and using ".." in my Gradle config to get to the library from my app. This means that if I have a collaborator (and I may soon) they either need to tweak the config to suit them or check things out in the same way I did.
Or I could publish to a repo like mavenCentral or jcenter, but I'm still working on it, so that doesn't sound good either.
Is there a cleaner option that I'm missing?
A simple solution would be to publish your library with JitPack. You just would need to create a GitHub release and have a build file in your repository.
JitPack is a maven repository that pulls in packages from GitHub repositories. It checks out your code and builds it.
Another option is Gradle Source Dependencies.
Basically you declare a dependency on a Git repository:
sourceControl {
gitRepository("https://github.com/gradle/native-samples-cpp-library.git") {
producesModule("org.gradle.cpp-samples:utilities")
}
}
and Gradle will clone and build that project.
Then you can add it as a dependency:
dependencies {
implementation('org.gradle.cpp-samples:utilities') {
version {
branch = 'release'
}
}
}

Android studio - Gradle - GitHub Repo

Does anyone have an idea if it's possible to use a github repo as a dependency, without it being published to maven central.
Let's say I'm developing an android library that has it's own github repo. I'd like to be able to "compile" this library has gradle dependency, in my android studio project, without having to publish to maven central (at least for the moment).
In other words : I want to use a dependency that is not on maven central. It's a straight github repo (an android library that also uses gradle).
I'd like my build.gradle to do something like this :
dependencies {
// Google Play Services (normal dependency)
compile "com.google.android.gms:play-services:5.2.08"
// The library I want to pull from github
compile "path_to_my_github_repo"
}
Thanks!
You can do that with Jitpack with Maven, Gradle and sbt.
However, I would strongly suggest to use binary artifact instead so that you are guaranteed that it is the same upon each build of your application, you control the artifact storage and you are using the official release of a project and not some downstream build. It will also make your builds much faster and more stable.
Publishing to the Central Repository is free, easy and well documented at e.g. http://central.sonatype.org/pages/producers.html and specifically for Gradle at http://central.sonatype.org/pages/gradle.html. You can also find lots of real world examples on the Nexus community site.
If you do not control the project you want to consume, I would suggest to send these pointers to the project and maybe even help them with a pull request ;-)
This should be possible and there is an unofficial gradle plugin called Gradle Git Repo plugin that claims to do what you're looking for. Note however, that I did not play with it myself to verify that it works.
What you need to use is a binary repository. It will contain your dependencies during development.
If you plan to publish your package to jcenter (and maven central) eventually, you can get a free Artifactory account in oss.jfrog.org.
Once doing that, your CI server can deploy your dependency to it and Gradle will resolve it from there.

add library from Git to Android Studio

I know this must be a pretty basic question, but I'm new to Android Studio and gradle, and I can't find any up-to-date info on this.
I'm trying to add this library to my project: android-segmented-control.
It doesn't look like I can add it to my build.gradle file (correct?). I'd like to do it that way, of course, and not download the project if possible.
If I do need to download the project, how do I link it up with my existing project? Again, I haven't been able to find anything that is current that describes this process for Android Studio 0.5.3
The library you mentioned does not seems to be pushed on maven central or any other maven repository. As this library contains resources files, you cannot add it as a jar.
The only way to use it is clone the git repository and add it as a module to your android app project.
Meanwhile, you can ask the author to make it available on a Maven repository like OSS sonatype
Thanks #Thomas Bouron for the hint !
I have pushed my library to maven center, so you just need to add the following dependency to your build.gradle.
dependencies {
compile 'info.hoang8f:android-segmented:1.0.0'
}
(A little late for #workInAFishBowl but it may be helpful for others.).

Categories

Resources