输出 Apk 所有的依赖

dim.red
代码片段


project.getGradle().addBuildListener(new BuildListener() {

    @Override
    void buildStarted(Gradle gradle) {

    }

    @Override
    void settingsEvaluated(Settings settings) {

    }

    @Override
    void projectsLoaded(Gradle gradle) {

    }

    @Override
    void projectsEvaluated(Gradle gradle) {

    }

    @Override
    void buildFinished(BuildResult result) {

        project.android.applicationVariants.each { variant ->
            if (variant.getAssemble().state.executed) {
                if (this.gradle.gradleVersion >= "4.1") {
                    // android plugin 3.0 以上
                    def runtime = project.configurations.create("d_analyse" + variant.runtimeConfiguration.name);
                    runtime.setCanBeConsumed(false);
                    runtime.extendsFrom(variant.runtimeConfiguration);
                    runtime.getAttributes().attribute(Attribute.of("artifactType", String.class), "jar")
                    variant.runtimeConfiguration.getAttributes().keySet().forEach({
                        runtime.getAttributes().attribute(it, variant.runtimeConfiguration.getAttributes().getAttribute(it));
                    })
                    println("${variant.name}  analyse")
                    println("runtime dependency ")
                    println("------------------")
                    runtime.resolvedConfiguration.resolvedArtifacts.forEach({
                        def id = it.moduleVersion.id;
                        println(id.group + " " + id.name + " " + id.version)
                    })
                    println("------------------\n ")
                    def packageC = project.configurations.create("d_analyse_" + variant.compileConfiguration.name);
                    packageC.setCanBeConsumed(false);
                    packageC.extendsFrom(variant.compileConfiguration);
                    packageC.getAttributes().attribute(Attribute.of("artifactType", String.class), "jar")
                    variant.compileConfiguration.getAttributes().keySet().forEach({
                        packageC.getAttributes().attribute(it, variant.compileConfiguration.getAttributes().getAttribute(it));
                    })
                    println("package dependency ")
                    println("------------------")
                    packageC.resolvedConfiguration.resolvedArtifacts.forEach({
                        def id = it.moduleVersion.id;
                        println(id.group + " " + id.name + " " + id.version)
                    })
                    println("------------------\n ")
                    println("\n ")

                } else {
                    // android plugin 3.0  以下
                    def appPlugin = project.plugins.findPlugin("com.android.application");
                    appPlugin.variantManager.variantDataList.forEach({
                        def variantDependencies = it.variantDependency;

                        if (variant.name == variantDependencies.name) {
                            println("${variant.name}  analyse")
                            def runtime = project.configurations.create("d_analyse" + variantDependencies.compileConfiguration.name);
                            runtime.setCanBeConsumed(false)
                            runtime.extendsFrom(variantDependencies.compileConfiguration);
                            println("runtime dependency ")
                            println("------------------")
                            runtime.resolvedConfiguration.resolvedArtifacts.forEach({
                                def id = it.moduleVersion.id;
                                println(id.group + " " + id.name + " " + id.version)
                            })
                            println("------------------\n ")

                            def packageC = project.configurations.create("d_analyse" + variantDependencies.packageConfiguration.name);
                            packageC.setCanBeConsumed(false)
                            packageC.extendsFrom(variantDependencies.packageConfiguration);
                            println("package dependency ")
                            println("------------------")
                            packageC.resolvedConfiguration.resolvedArtifacts.forEach({
                                def id = it.moduleVersion.id;
                                println(id.group + " " + id.name + " " + id.version)
                            })
                            println("------------------\n ")
                            println("\n ")
                        }

                    })

                }
            }

        }
    }
});

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容