我有一个使用库B的库A。然后这两个库由应用程序C使用。
库M和库B都可以在Maven存储库中找到。
我试图通过将B添加到A的POM文件中来将其作为对A的依赖。
我不确定这是否正确,还是有标准方法可以做到这一点。
我正在寻找执行此操作的标准方法或引用指南,以指导我正确的方向。
请让我知道我是否可以提供其他信息。
最佳答案
这种关系的术语称为传递依存关系。在您的应用程序中,您仅定义直接依赖关系,传递性依赖关系由特定的构建系统(Gradle,Maven,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
因此,
opentest4j
和junit-platform-commons
是junit-jupiter-api
库的传递依赖项,它是项目的唯一直接依赖项。对于Maven来说,这是等效的。例如。您可以使用以下方式列出Maven依赖项:
$ mvn dependency:tree
关于maven - Maven和Gradle嵌套依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48100839/