有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java gradle如何定义jar文件的依赖jar文件?

dependencies {
    sources group: 'org.glassfish.jersey.media', name: 'jersey-media-moxy', version: '2.22.2', classifier: 'sources'
}

当我通过gradle运行上述依赖项时,它会下载jar文件和相关的其他jar文件

我的问题是:gradle如何定义这个jar需要哪些jar


共 (1) 个答案

  1. # 1 楼答案

    它使用项目中定义的依赖项解决策略之一。你可以在这里找到更多细节https://docs.gradle.org/current/dsl/org.gradle.api.artifacts.ResolutionStrategy.html

    默认情况下,它通过遍历pom文件来使用标准的maven依赖项解析策略

    例如,在你的组织案例中。玻璃鱼。运动衫它从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>