Spring Boot Gradle项目添加外部JAR后构建失败,求解决方案
解决方案
你的问题核心在于:你用远程仓库的坐标格式声明了rezg.rezos:rezg-data-publisher:1.0.0-SNAPSHOT,但这个依赖实际是本地lib目录下的JAR包,Gradle默认会去配置的远程仓库查找该坐标,自然找不到而报错;同时你已经通过fileTree引入了lib下的所有JAR,这个重复的远程坐标声明是问题根源。以下是可行的解决办法:
方案1:移除重复的远程依赖声明
既然fileTree已经批量引入了lib目录下的所有JAR,直接删除那个远程坐标的依赖声明即可。修改后的依赖配置:
dependencies { implementation fileTree(dir: 'lib', include: ['*.jar']) }
注:compile已被Gradle弃用,建议使用implementation替代。
方案2:单独引用目标本地JAR
如果不需要批量引入lib下所有JAR,可单独指定该JAR的路径:
dependencies { implementation files('lib/rezg-data-publisher-1.0.0-SNAPSHOT.jar') // 其他依赖声明... }
方案3:将本地lib配置为flatDir仓库(保留坐标式声明)
若希望继续使用group:name:version的格式声明依赖,需把lib目录配置为本地flatDir仓库。在build.gradle中添加仓库配置:
repositories { mavenCentral() // 保留你原有的远程仓库配置 flatDir { dirs 'lib' } } dependencies { implementation fileTree(dir: 'lib', include: ['*.jar']) // 可选,若需要批量引入其他JAR implementation group: 'rezg.rezos', name: 'rezg-data-publisher', version: '1.0.0-SNAPSHOT' }
此方式要求JAR文件名符合{name}-{version}.jar的格式,你的rezg-data-publisher-1.0.0-SNAPSHOT.jar完全符合要求。
内容的提问来源于stack exchange,提问作者gimhanas
相关产品推荐
相关产品推荐

