Table of Contents
Gradle can resolve external dependencies from one or many repositories based on Maven, Ivy or flat directory directory formats. Check out the full reference on all types of repositories for more information.
Organizations building software may want to leverage public binary repositories to download and consume open source dependencies. Popular public repositories include Maven Central, Bintray JCenter and the Google Android repository. Gradle provides built-in shortcut methods for the most widely-used repositories.
To declare JCenter as repository, add this code to your build script:
Example 282. Declaring JCenter repository as source for resolving dependencies
build.gradle
repositories { jcenter() }
Under the covers Gradle resolves dependencies from the respective URL of the public repository defined by the shortcut method. All shortcut methods are available via the RepositoryHandler
API. Alternatively, you can spell out the URL of the repository for more fine-grained control.
Most enterprise projects set up a binary repository available only within an intranet. In-house repositories enable teams to publish internal binaries, setup user management and security measure and ensure uptime and availability. Specifying a custom URL is also helpful if you want to declare a less popular, but publicly-available repository.
Add the following code to declare an in-house repository for your build reachable through a custom URL.
Example 283. Declaring a custom repository by URL
build.gradle
repositories {
maven {
url "http://repo.mycompany.com/maven2"
}
}
Repositories with custom URLs can be specified as Maven or Ivy repositories by calling the corresponding methods available on the RepositoryHandler
API. Gradle supports other protocols than http
or https
as part of the custom URL e.g. file
, sftp
or s3
. For a full coverage see the reference manual on supported transport protocols.
You can define more than one repository for resolving dependencies. Declaring multiple repositories is helpful if some dependencies are only available in one repository but not the other. You can mix any type of repository described in the reference section.
This example demonstrates how to declare various shortcut and custom URL repositories for a project:
Example 284. Declaring multiple repositories
build.gradle
repositories { jcenter() maven { url "https://maven.springframework.org/release" } maven { url "https://maven.restlet.org" } }
The order of declaration determines how Gradle will check for dependencies at runtime. If Gradle finds a module descriptor in a particular repository, it will attempt to download all of the artifacts for that module from the same repository. You can learn more about Gradle’s resolution mechanism in the dedicated section.