如何使 gradle 中的传递依赖项也使用依赖项的原始来源?

How can I make a transitive dependency in gradle also use the dependency's original source?

我有一个库,我称之为 core,它是另一个名为 Museum 的项目的依赖项。在 core 的 build.gradle 中,我使用 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

Museumbuild.gradle 如下所示:

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

推测这是因为core库在Museumbuild.gradle中被指定为transient = true,但它没有正确的搜索位置gson-fire 的 Maven 存储库。有没有办法使这些搜索位置以及依赖项本身成为瞬时的?

不会自动,不会。传递依赖性不引入存储库信息,只引入工件本身。如果您希望它起作用,您必须将 core 项目中的 repositories { } 块添加到 Museum 项目中。

此外,在这种情况下不需要添加 transitive = true。这是默认设置,如上所述,与此特定问题无关。