当前位置: 首页 > 知识库问答 >
问题:

如何在gradle中创建传递依赖项并使用依赖项的原始源?

康烨伟
2023-03-14

我有一个库,我称之为核心,它是另一个项目的依赖项,名为博物馆。在核心的构建中。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

<code>生成。Museum的gradle如下所示:

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

可能这是因为核心库在build中被指定为 博物馆的gradle ,但它没有正确的位置来搜索gson fireMaven存储库。有没有一种方法可以使这些搜索位置以及依赖关系本身变得短暂?

共有1个答案

诸葛利
2023-03-14

不,不是自动的。可传递的依赖关系不会引入存储库信息,只会引入工件本身。如果您希望这样做,您必须将< code>core项目中的< code>repositories { }块添加到< code>Museum项目中。

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

 类似资料:
  • 我给ivy添加了一个依赖项(我们称之为a)。在maven central中具有pom文件的xml。Ivy使用ibiblio来解析maven依赖项。添加到常春藤中的依赖项(A)。xml具有可传递依赖项(B)。到目前为止,一切都很好。传递依赖(B)的依赖(C)不能用常春藤来解决。 我在常春藤上定义了一个新的名字。如下所示的xml: 在B的pom文件中,C在编译和测试范围中定义如下: 当我在ivy的缓存

  • 问题内容: 假设我想在项目中添加guice-assistedinject作为依赖项。它将guice工件指定为依赖项本身。如何告诉它使用guice的no_aop版本? 我知道我可以执行以下操作,但是我可以一步完成而不排除guice模块吗? 问题答案: 没有更简单的解决方案。您可以使用简短的依赖性表示法(例如)来缩短代码。

  • 我有一个库项目,我用它来为我的其他项目保存一些设置,这些项目有很多实用程序分类,也包括实用程序库。因此,我将库的build.gradle中的所有“实现”调用都改为“API”调用,这样我就不需要一次又一次地重新导入依赖项。在构建库并将jar从我的library文件夹移动到主项目中的lib文件夹后,我可以访问库中的所有类,但是传递依赖项在主项目中不可用。 我还尝试使用实现和transivive=tru

  • 我刚刚将我的项目升级到gradle 7,并且遇到了缺失的可传递依赖项。我试着改变我的身材。gradle文件在依赖项中使用“api”,但这并没有修复它。 projectA依赖于projectB,projectB依赖于projectC。 projectA-build。格拉德尔 projectB-构建。格拉德尔 ProjectA编译良好,但有运行时错误-从project ectC获取类的ClassNot

  • 我是maven的新手。(我已经搜索了几个小时的答案,但没有运气。mvn依赖:复制依赖不能解决我的问题)我需要复制项目的所有依赖项(以jar的形式),如果我的一个jar依赖于另一个工件,也复制该工件。 示例project1 pom。xml: “project1”依赖于project2。人工制品罐子当我使用“mvn依赖项:复制依赖项”时,我得到了project2。人工制品但我没有得到project3。