dependencies {
sources group: 'org.glassfish.jersey.media', name: 'jersey-media-moxy', version: '2.22.2', classifier: 'sources'
}
当我通过gradle运行上述依赖项时,它会下载jar文件和相关的其他jar文件。
我的问题是: gradle如何定义这个罐子需要哪些罐子?
答案 0 :(得分:1)
它使用项目中定义的依赖项解析策略之一。您可以在https://docs.gradle.org/current/dsl/org.gradle.api.artifacts.ResolutionStrategy.html
找到更多详细信息默认情况下,它通过遍历pom文件
使用标准的maven依赖关系解析策略例如,在org.glassfish.jersey.media的情况下,它从here获取POM文件。此POM文件包含以下依赖项部分。在gradle加载此文件之后,它依次加载相应的POM文件并查看依赖项的依赖项,直到它到达不依赖于任何内容的叶包。当依赖关系图不是完美树并且两个不同的包具有相同的依赖关系时,事情可能会变得更复杂。如果公共依赖项的版本相同或两个依赖包都可以使用通用版本,则通常会解决这些问题。否则您将陷入冲突,并使用上述策略之一来解决它。
<dependencies>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-common</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.ext</groupId>
<artifactId>jersey-entity-filtering</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.moxy</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>