代码之家  ›  专栏  ›  技术社区  ›  csonq

Maven和Gradle嵌套依赖项

  •  1
  • csonq  · 技术社区  · 7 年前

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

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

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

    我不确定这是正确的方法还是有一个标准的方法来做到这一点。

    我正在寻找这样做的标准方法或参考指南,为我指明正确的方向。

    请让我知道,如果有任何其他信息,我可以提供。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Vít Kotačka    7 年前

    这种关系的术语称为 可传递依赖项 . 在应用程序中,您只需定义 直接的 依赖项 及物的 由特定构建系统处理( 格拉德尔 , 专家 , 蚂蚁+常春藤 ).

    例如,考虑以下内容 格拉德尔 生成脚本:

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

    可以使用以下命令列出此项目依赖项:

    $ gradle dependencies
    

    这应提供类似的结果(取决于 格拉德尔 版本,此版本为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
    

    因此 opentest4j junit-platform-commons 及物的 的依赖项 junit-jupiter-api 图书馆,这是唯一 直接的 项目的依赖关系。

    这相当于 专家 . E、 g.您可以列出Maven依赖项:

    $ mvn dependency:tree