Android查看所有依赖

1、命令:./gradlew dependencies

2、直接执行gradle task     

3、自定义gradle task

gradle.projectsEvaluated {
  println('Projects loaded')
  println('*' * 15)
  allprojects.forEach { proj ->
    final List<ProjectDependency> projectDependencies = proj.configurations.collectMany { Configuration configuration ->
      configuration.allDependencies
    }.findAll { Dependency dependency ->
      dependency instanceof ProjectDependency
    }.collect {
      it as ProjectDependency
    }.unique().collect()
    println("Project ${proj.name}")
    println(projectDependencies.collect { "  ${it.name} -> ${it.dependencyProject.path}" }.join(System.lineSeparator()))
    println()
  }
}

原文地址

此法特点:module中又再依赖其他的module不能够显示。

4、自定义gradle task 

project.afterEvaluate {
 project.android.applicationVariants.all { variant ->
  tasks.create(name: "showDependencies${variant.name.capitalize()}",
    description: "展示所有依赖") {
   doLast {
    Configuration configuration
    try {
     // 3.x
     configuration = project.configurations."${variant.name}CompileClasspath"
    } catch (Exception e) {
     // 2.x
     configuration = project.configurations."_${variant.name}Compile"
    }
    configuration.resolvedConfiguration.lenientConfiguration.allModuleDependencies.each {
     def identifier = it.module.id
     println("${identifier.group}:${identifier.name}:${identifier.version}")
    }
   }
  }
 }
}

原文地址

此法特点:app中可以显示,其他module中无法显示。

 

5、使用Gradle View插件

 

6、使用gradle report插件

   在build.gradle中添加依赖

project-report

然后执行下面命令即可:

./gradlew dependencyReport

7、自定义gradle插件实现

    @TaskAction
    void analysisDependencies() {
        LogUtils.w("Root Project:" + getProject().getRootProject().getName() + "\n");

        Project rootProject = getProject().getRootProject();

        // Collect
        List<Dependency> dependencies = new ArrayList<>();
        if (rootProject != null) {
            rootProject.getAllprojects().forEach(project -> collectProjectDept(project, dependencies));
        }
        // Export
        writeDependencies(dependencies);
    }

    private void writeDependencies(List<Dependency> dependencies) {
        distDir = new File(getProject().getRootProject().getBuildDir(), "distributions" + File.separator + "dependencies.xls").getAbsolutePath();
        workbook = WorkBookUtils.getWorkSheet(distDir);
        sheet = workbook.createSheet("Statistic", 0);

        writeHeader();
        dependencies.forEach(dependency -> writeOneDependence(dependency));

        try {
            workbook.write();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                workbook.close();
            } catch (IOException e) {
                e.printStackTrace();
            } catch (WriteException e) {
                e.printStackTrace();
            }
        }
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值