2016-02-15 4 views
1

Я всегда вижу, когда вы добавляете строки, такие как compile 'joda-time:joda-time:2.9.2' в gradle, скажем, в Android Studio, он автоматически получает библиотеку и использует ее в моем проекте. Как это произошло? Как град найти библиотеку, получить ее и связать?Как град получает библиотеку

ответ

2

Gradle позволяет рассказать об этом, каковы зависимости вашего проекта, чтобы он мог позаботиться о поиске этих зависимостей и сделать их доступными в вашей сборке.
Зависимости, возможно, потребуется загрузить с удаленного Maven или Ivy хранилища, или находятся в локальном каталоге, или, возможно, должна быть построена другим проектом в том же нескольких проектах построения

Вы можете прочитать больше info в official doc.

Прежде всего, вы должны объявить хранилищами, из которого вы хотите загрузить зависимости:

Somenthing как:

repositories { 
    mavenCentral() 
    jcenter() 
    maven { 
     url "http://repo.mycompany.com/maven2" 
    } 
} 

Хранилище может быть публичным или частным порядком, и вы можете определить более 1 репо. Это важно для заказа.

Тогда вы можете объявлять зависимости:

dependencies{ 
    //.. 
    compile 'joda-time:joda-time:2.9.2'  
} 

Каждый артефакт имеет POM файл, который описывает некоторые свойства (например, имя и версия) и вложенных зависимостей.
Gradle downalod артефакт и вложенные зависимости для вас, используя этот файл pom.

Здесь вы можете найти files and the pom file для библиотеки joda-time в jcenter repo.

+0

В моем случае этот 'jcenter()' делает магию. Я наконец-то понял. Благодаря @ gabriele-mariotti. Эта строка 'joda-time: joda-time: 2.9.2' соответствует' http: // jcenter.bintray.com/joda-time/joda-time/2.9.2/', где присутствует банка – padfoot

+0

@padfoot Mark ответ, если он решает вопрос. Он может помочь другим пользователям. –

Смежные вопросы