【问题标题】:Maven and Gradle nested dependenciesMaven 和 Gradle 嵌套依赖项
【发布时间】:2018-06-14 12:18:07
【问题描述】:

我有一个使用库 B 的库 A。这两个库随后被应用程序 C 使用。

库 A 和 B 都可以在 maven 存储库中找到。

我试图通过将 B 添加到 A 的 POM 文件中来将 B 作为依赖项添加到 A。

我不确定这是否是正确的方法,或者是否有标准的方法可以做到这一点。

我正在寻找执行此操作的标准方法或参考指南来为我指明正确的方向。

如果我可以提供任何其他信息,请告诉我。

【问题讨论】:

    标签: maven gradle repository


    【解决方案1】:

    这种关系的术语称为传递依赖。在您的应用程序中,您只定义 direct 依赖项,transitive 依赖项由特定的构建系统(GradleMaven,蚂蚁 + 常春藤)。

    例如,考虑以下 Gradle 构建脚本:

    apply plugin: 'java'
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        testImplementation 'org.junit.jupiter:junit-jupiter-api:5.0.2'
    }
    

    你可以用命令列出这个项目的依赖:

    $ gradle dependencies
    

    这应该提供类似的结果(取决于 Gradle 版本,这个是 4.4.1):

    testCompileClasspath - Compile classpath for source set 'test'.
    \--- org.junit.jupiter:junit-jupiter-api:5.0.2
         +--- org.opentest4j:opentest4j:1.0.0
         \--- org.junit.platform:junit-platform-commons:1.0.2
    

    因此,opentest4jjunit-platform-commonsjunit-jupiter-api 库的传递依赖项,这是项目的唯一直接依赖项。

    它相当于 Maven。例如。您可以列出 Maven 依赖项:

    $ mvn dependency:tree
    

    【讨论】:

      猜你喜欢
      • 2020-02-11
      • 2020-07-04
      • 2013-07-05
      • 1970-01-01
      • 1970-01-01
      • 2013-11-18
      • 2013-12-09
      • 1970-01-01
      • 2016-08-01
      相关资源
      最近更新 更多