Gradle 中如何正确打印本地文件系统 JAR 依赖的完整列表
发布时间 - 2025-12-27 00:00:00 点击率:次当使用 `filetree` 或 `files()` 声明本地 jar 依赖时,gradle 的 `dependencies` 任务默认不显示这些文件依赖;需通过自定义任务遍历 `configurations.*` 集合并显式输出路径或名称。
在 Gradle 中,通过 files()、fileTree() 等方式引入的本地文件依赖(即非坐标化依赖)不会被 ./gradlew
:project:dependencies 任务识别为“依赖项”,因为它们不属于 Maven/Ivy 仓库体系,也不具备模块坐标(group:name:version),因此该任务仅展示传递性依赖图,对纯文件路径依赖返回 No dependencies。
要真正查看 infraLibs(或其他自定义 configuration)中实际包含的本地 JAR 文件,最直接有效的方式是定义一个专用的 Gradle 任务,手动遍历对应 configuration 的文件集合:
task printInfraLibs {
doLast {
configurations.infraLibs.resolvedConfiguration.files.each { file ->
println "→ ${file.name} [${file.absolutePath}]"
}
}
}✅ 推荐使用 resolvedConfiguration.files(而非 configurations.infraLibs.each),因为它确保所有依赖(包括嵌套 fileTree 和 files() 声明)均已解析完成,且返回的是 File 实例,可安全访问路径与名称。
执行命令:
./gradlew printInfraLibs
你将看到类似输出:
→ aspectjrt-1.9.20.jar [/path/to/lib/aspectj-1.9.20/aspectjrt-1.9.20.jar] → aspectjtools-1.9.20.jar [/path/to/lib/aspectj-1.9.20/aspectjtools-1.9.20.jar] → log4j-api-2.17.1.jar [/path/to/lib/log4j-2.17.1/log4j-api-2.17.1.jar] → commons-lang-2.6.jar [/path/to/lib/commons-lang-2.6/commons-lang-2.6.jar] → commons-beanutils.jar [/path/to/lib/commons-beanutils-1.9.4/commons-beanutils.jar]
⚠️ 注意事项:
- 确保 infraLibs configuration 已正确定义(如 configurations.create("infraLibs")),并在 dependencies 块中正确赋值;
- 若在 doLast 中直接访问 configurations.infraLibs.files,可能因延迟解析导致空结果;务必使用 resolvedConfiguration.files;
- 在 Gradle 7.0+ 中,推荐使用 configurations.infraLibs.incoming.artifacts.files(面向新依赖管理 API),但对纯文件依赖兼容性仍以 resolvedConfiguration 最稳定;
- 如需导出为文本文件,可在任务中追加:new File("infraLibs-deps.txt").text = configurations.infraLibs.resolvedConfiguration.files.join("\n")
总结:本地 JAR 不参与标准依赖图渲染,但可通过编程式遍历 resolvedConfiguration.files 完全可控地审计、验证和调试实际参与构建的二进制文件——这是处理离线/封闭环境项目的必备实践。
# maven
# gradle
# 遍历
# 推荐使用
# 自定义
# 的是
# 这是
# 离线
# 也不
# 并在
# 可在
# 或其他
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工
微信h5制作网站有哪些,免费微信H5页面制作工具?
html5的keygen标签为什么废弃_替代方案说明【解答】
Laravel如何实现事件和监听器?(Event & Listener实战)
Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门
在线制作视频的网站有哪些,电脑如何制作视频短片?
千库网官网入口推荐 千库网设计创意平台入口
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
黑客入侵网站服务器的常见手法有哪些?
Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践
如何获取上海专业网站定制建站电话?
中国移动官方网站首页入口 中国移动官网网页登录
如何快速搭建高效简练网站?
Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】
如何用低价快速搭建高质量网站?
魔方云NAT建站如何实现端口转发?
Linux网络带宽限制_tc配置实践解析【教程】
Laravel如何从数据库删除数据_Laravel destroy和delete方法区别
如何在景安服务器上快速搭建个人网站?
如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
如何用免费手机建站系统零基础打造专业网站?
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
Laravel Admin后台管理框架推荐_Laravel快速开发后台工具
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
如何快速打造个性化非模板自助建站?
lovemo网页版地址 lovemo官网手机登录
Laravel Blade模板引擎语法_Laravel Blade布局继承用法
英语简历制作免费网站推荐,如何将简历翻译成英文?
香港服务器部署网站为何提示未备案?
MySQL查询结果复制到新表的方法(更新、插入)
Laravel怎么连接多个数据库_Laravel多数据库连接配置
浅谈redis在项目中的应用
Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】
Android中AutoCompleteTextView自动提示
Laravel怎么实现验证码(Captcha)功能
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
JavaScript如何实现音频处理_Web Audio API如何工作?
Android实现代码画虚线边框背景效果
,交易猫的商品怎么发布到网站上去?
如何用腾讯建站主机快速创建免费网站?
laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法
LinuxCD持续部署教程_自动发布与回滚机制
网易LOFTER官网链接 老福特网页版登录地址
Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布
怎么用AI帮你设计一套个性化的手机App图标?

