Maven和Gradle嵌套依赖项

时间:2018-01-04 17:48:24

标签: maven gradle repository

我有一个使用库B的库A.这两个库然后由应用程序C使用。

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

此类关系的术语称为传递依赖。在您的应用程序中,您只定义直接依赖项,传递由特定构建系统处理( Gradle Maven < / em>, Ant + Ivy )。

例如,考虑以下 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