Gradle - get URL of dependency artifact

后端 未结 1 1401
被撕碎了的回忆
被撕碎了的回忆 2020-12-11 02:29

I want to download the dependency artifacts manually in the future after Gradle has all the dependency artifacts available, hence I would like to get the URLs which Gradle u

相关标签:
1条回答
  • 2020-12-11 02:54

    use gson for a example:

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

    create a task to print 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) {
                    }
                }
            }
        }
    }
    
    

    run ./gradlew getURLofDependencyArtifact

    Task :getURLofDependencyArtifact

    com.google.code.gson:gson:2.8.6 -> https://jcenter.bintray.com/com/google/code/gson/gson/2.8.6/gson-2.8.6.jar

    PS:the result dependency your project's

    repositories {
        jcenter()
        mavenCentral()
    }
    

    so, the result maybe:

    Task :getURLofDependencyArtifact

    com.google.code.gson:gson:2.8.6 -> https://repo.maven.apache.org/maven2/com/google/code/gson/gson/2.8.6/gson-2.8.6.jar

    0 讨论(0)
提交回复
热议问题