Gradle:如何打印本地文件系统Jar依赖的依赖图?
Gradle本地Jar依赖无法通过dependencies命令显示?试试这几招
先确认配置没写错
先检查你的infraLibs配置和fileTree关联是否正确,标准写法应该是这样:
configurations { infraLibs } dependencies { infraLibs fileTree(dir: 'libs', include: ['*.jar']) }
要是dir路径写错(比如相对项目根目录的位置不对),或者没把fileTree挂到infraLibs上,自然会显示"No dependencies"。
打印本地Jar依赖的可行方法
方法1:自定义任务直接输出
Gradle默认的dependencies任务不会展开fileTree这类文件集合,自己写个任务遍历打印最直接:
task listInfraLibs { doLast { configurations.infraLibs.each { jarFile -> println "本地Jar: ${jarFile.name}" } } }
执行命令:./gradlew myproject:listInfraLibs,就能看到所有本地Jar的名字。
方法2:开启详细日志看解析过程
加日志参数让Gradle输出更细节的依赖解析,包括本地文件:
./gradlew myproject:dependencies --configuration infraLibs -Dorg.gradle.logging.level=info
在输出里搜你的Jar目录或者fileTree关键词,就能找到对应的本地Jar信息。
方法3:检查配置的实际文件集合
如果还是没结果,先确认配置到底有没有加载到Jar,写个任务打印文件数量和路径:
task verifyInfraLibs { doLast { def libFiles = configurations.infraLibs.files println "infraLibs加载的Jar数量: ${libFiles.size()}" libFiles.each { f -> println "Jar路径: ${f.absolutePath}" } } }
执行./gradlew myproject:verifyInfraLibs,要是数量为0,说明你的fileTree路径或include规则有问题,得调整路径。
内容的提问来源于stack exchange,提问作者Swapnil Kotwal
相关产品推荐
相关产品推荐

