Gradle 7 如何将依赖jar包下载或复制到指定文件夹
Gradle 7 依赖下载到指定目录实现方案
Gradle 7 对依赖配置的权限做了严格拆分,原生implementation属于仅可声明依赖的配置,不允许直接解析获取对应的依赖文件,按照以下步骤配置即可实现需求:
- 第一步:声明自定义可解析配置,继承
implementation即可复用你已定义的全部依赖
configurations { // 自定义专门用于下载依赖的配置 downloadJar { extendsFrom configurations.implementation // 显式声明允许解析该配置的依赖树 canBeResolved = true // 仅本地解析使用,禁止作为依赖被外部项目消费 canBeConsumed = false } }
- 第二步:修改你已有的copy任务,直接从上述自定义配置读取依赖文件即可,Gradle会自动触发依赖下载逻辑
task copyDependencyToDir(type: Copy) { // 源路径直接取自定义配置解析后的所有依赖文件 from configurations.downloadJar // 替换为你需要的目标文件夹路径 into "./target-libs" }
- 第三步:执行任务完成操作
执行命令./gradlew copyDependencyToDir(Linux/Mac环境)或gradlew.bat copyDependencyToDir(Windows环境)即可,Gradle会自动完成依赖下载、复制到目标文件夹的全流程。
可选调整:仅下载指定依赖
如果你不需要下载全部implementation依赖,仅需要下载指定的几个jar,可以不继承implementation,单独给自定义配置添加依赖即可:
configurations { downloadSpecificJar { canBeResolved = true canBeConsumed = false } } dependencies { // 原有全局依赖声明保留不变 implementation group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '2.1.15.RELEASE' implementation group: 'org.springframework.boot', name: 'spring-boot-starter-security', version: '2.0.9.RELEASE' // 单独指定需要下载的依赖 downloadSpecificJar 'org.springframework.boot:spring-boot-starter-web:2.1.15.RELEASE' downloadSpecificJar 'org.springframework.boot:spring-boot-starter-security:2.0.9.RELEASE' } task copySpecificDependency(type: Copy) { from configurations.downloadSpecificJar into "./specific-target-libs" }
内容的提问来源于stack exchange,提问作者Stack Underflow
相关产品推荐
相关产品推荐

