Как сделать так, чтобы транзитивная зависимость в gradle также использовала исходный источник зависимости?

У меня есть библиотека, которую я называю core, которая является зависимостью от другого проекта, называемого Museum. В build.gradle core я использую gson-fire, который указан как зависимость следующим образом:

repositories {
    maven { url 'https://raw.github.com/julman99/mvn-repo/master'}
}

...

dependencies {
 compile 'com.github.julman99:gson-fire:0.11.0'
}

Это отлично работает - core компилируется. Однако когда я использую его в своем проекте Museum, я получаю следующее:

A problem occurred configuring project ':Museum'.
> Could not resolve all dependencies for configuration ':Museum:_debugCompile'.
   > Could not find com.github.julman99:gson-fire:0.11.0.
     Searched in the following locations:
         file:/Users/jwir3/.m2/repository/com/github/julman99/gson-fire/0.11.0/gson-fire-0.11.0.pom
         file:/Users/jwir3/.m2/repository/com/github/julman99/gson-fire/0.11.0/gson-fire-0.11.0.jar
         http://download.crashlytics.com/maven/com/github/julman99/gson-fire/0.11.0/gson-fire-0.11.0.pom
         http://download.crashlytics.com/maven/com/github/julman99/gson-fire/0.11.0/gson-fire-0.11.0.jar
         https://repo1.maven.org/maven2/com/github/julman99/gson-fire/0.11.0/gson-fire-0.11.0.pom
         https://repo1.maven.org/maven2/com/github/julman99/gson-fire/0.11.0/gson-fire-0.11.0.jar
     Required by:
         museum:Museum:unspecified > com.jwir3.core:core:1.4.0-SNAPSHOT

build.gradle из Museum выглядит следующим образом:

dependencies {
    compile ('com.thisclicks.core:core:' + project.CORE_LIB_VERSION+ '+@aar') {
        transitive = true
    }
}

Предположительно, это связано с тем, что библиотека core указана как transient = true в build.gradle из Museum, но у нее нет правильного местоположения для поиска репозитория Maven gson-fire. Есть ли способ сделать эти места поиска временными, а также сами зависимости?


person jwir3    schedule 25.02.2015    source источник
comment
Для справки, еще один ответ на аналогичный вопрос: Как объявить репозитории в созданных Gradle POM, где Питер Нидервизер заявляет, что Gradle сам по себе не учитывает репозитории, объявленные в POM, при разрешении зависимостей   -  person Alberto    schedule 24.08.2015


Ответы (1)


Не автоматически, нет. Транзитивные зависимости не приносят в репозиторий информацию, а только сами артефакты. Если вы хотите, чтобы это работало, вам нужно добавить блок repositories { } из проекта core в проект Museum.

Кроме того, в этом случае нет необходимости добавлять transitive = true. В любом случае это значение по умолчанию, и, как объяснялось выше, оно не связано с этой конкретной проблемой.

person Mark Vieira    schedule 26.02.2015