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();
}
}
}