maven - Maven和Gradle嵌套依赖项

标签 maven gradle repository

我有一个使用库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

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

对于Maven来说,这是等效的。例如。您可以使用以下方式列出Maven依赖项:
$ mvn dependency:tree

关于maven - Maven和Gradle嵌套依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48100839/

相关文章:

eclipse - 同一 Maven 存储库上的两个 Eclipse

spring-boot - Quarkus Jandex 索引无法解析 Artifact org.springframework :spring-web

带有 visual studio 2017 的 Android - build.gradle 与 build.gradle.template

git - merge 两个 Git 仓库并保留历史记录

git - LibGit2Sharp CheckoutPaths()

git - 重写路径时将本地 git 存储库迁移到更大的远程存储库

java - 是否可以在父 pom 文件中包含 <packaging>jar</packaging> ?

java - 我应该在 Spring 和 Android 中使用一种 Java 模型表示吗?

spring-boot - Gradle未找到Spring Boot依赖项

android - 如何确定在生成过程中使用了哪个确切的依赖版本