当前位置: 首页 > 知识库问答 >
问题:

Gradle-获取依赖项工件URL

喻珂
2023-03-14

我想在Gradle拥有所有可用的依赖构件之后,在将来手动下载依赖构件,因此我想获得Gradle用来下载这些构件的URL。

有没有一种方法可以获得Gradle下载的依赖项的URL?

共有1个答案

越麒
2023-03-14

以gson为例:

dependencies {
    // https://mvnrepository.com/artifact/com.google.code.gson/gson
    compile 'com.google.code.gson:gson:2.8.6'
}

创建要打印URL得任务:

task getURLofDependencyArtifact() {
    doFirst {
        project.configurations.compile.dependencies.each { dependency ->
            for (ArtifactRepository repository : project.repositories.asList()) {
                def url = repository.properties.get('url')
                //https://repo.maven.apache.org/maven2/com/google/code/gson/gson/2.8.6/gson-2.8.6.jar
                def jarUrl = String.format("%s%s/%s/%s/%s-%s.jar", url.toString(),
                        dependency.group.replace('.', '/'), dependency.name, dependency.version,
                        dependency.name, dependency.version)
                try {
                    def jarfile = new URL(jarUrl)
                    def inStream = jarfile.openStream();
                    if (inStream != null) {
                        println(String.format("%s:%s:%s", dependency.group, dependency.name, dependency.version)
                                + " -> " + jarUrl)
                        return
                    }
                } catch (Exception ignored) {
                }
            }
        }
    }
}

运行./gradlew GetUrlofDependencyArtifact

repositories {
    jcenter()
    mavenCentral()
}
 类似资料:
  • 告诉Gradle以下内容的最简单方法是什么: 检索“junit”依赖项并获取其最新版本。 管理Maven和Ivy仓库对我来说有点新鲜。我尝试了以下步骤,它们导致错误: > 编写,并按以下方式设置存储库: 尝试使用Spring Source Ivy仓库: 也许我误解了什么。为什么获取最新版本的依赖项会如此困难?

  • 我正试图让maven下载所有的依赖项(编译、测试、插件等)。)这样我就可以避免让我们的dockerized构建浪费不必要的时间一遍又一遍地下载它们。 我们已经对maven build进行了dockerized,这样我们就可以从jenkins运行它,而无需在jenkins机器上安装大量构建特定的依赖项(Java、redis、maven依赖项等)。我们的构建依赖于增量docker构建,它只执行实际需要

  • 问题内容: 告诉以下内容的最简单方法是: 检索“ junit”依赖项并获取其最新的“ release”版本。 管理Maven和Ivy存储库对我来说是新的。我尝试了以下步骤,但它们导致错误: 在存储库设置为only的情况下写 (但是,如果我说“ junit:junit:4.10”,它可以工作)。 使用存储库设置以下列方式写入: } 尝试使用Spring Source Ivy存储库: } 也许我误会了

  • 我将给你一个关于我的文件的概述: 设置。分级: Build.Gradle: 注意:我以为没有将依赖项添加到类路径中,但我不确定这一点。但是,我希望Intellij将依赖项添加到类路径中(或者在清单文件中声明) 但是,这会创建一个zip/tar,其中包含一个执行脚本和一个bin文件夹,这不是我的本意。 所以我开始在谷歌上搜索了好几个小时,但我找不到解决问题的方法。

  • 我正在使用mongodb和Spring Boot。最近,我的mongodb升级到了3.0版本。 我对Spring使用以下Gradle依赖项: 如果我查看maven存储库中的gradle:,我会看到以下内容(http://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-mongodb/1.2.6

  • 这些依赖关系用列在一个依赖项下,这个依赖项是我们的jar库,仍然是用gradle 5.1.1构建的 我们的库存储在一个S3桶中,我们使用shadowjar来生成结束Jar。 例如: 不幸的是,我不能创建一个真正的复制程序,因为这些库是我工作的公司的真正代码。 谢谢和问候,伊多