记一次gradle项目build失败以及解决方案(典型)
我要编译一个项目PUTflap。clone 到本地,按照其readme文件进行build。然后gradle报错如下:
Could not determine the dependencies of task ‘:shadowJar’.
Could not resolve all dependencies for configuration ‘:runtimeClasspath’.
Could not find org.apache.batik:org.apache.batik.dom.svg:1.6.0-20081006.
Searched in the following locations:
- https://jcenter.bintray.com/org/apache/batik/org.apache.batik.dom.svg/1.6.0-20081006/org.apache.batik.dom.svg-1.6.0-20081006.pom
- https://jcenter.bintray.com/org/apache/batik/org.apache.batik.dom.svg/1.6.0-20081006/org.apache.batik.dom.svg-1.6.0-20081006.jar
- https://repo.maven.apache.org/maven2/org/apache/batik/org.apache.batik.dom.svg/1.6.0-20081006/org.apache.batik.dom.svg-1.6.0-20081006.pom
- https://repo.maven.apache.org/maven2/org/apache/batik/org.apache.batik.dom.svg/1.6.0-20081006/org.apache.batik.dom.svg-1.6.0-20081006.jar
- http://repository.openmindonline.it/org/apache/batik/org.apache.batik.dom.svg/1.6.0-20081006/org.apache.batik.dom.svg-1.6.0-20081006.pom
- http://repository.openmindonline.it/org/apache/batik/org.apache.batik.dom.svg/1.6.0-20081006/org.apache.batik.dom.svg-1.6.0-20081006.jar
Required by:
project :
- Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.- Get more help at https://help.gradle.org
BUILD FAILED in 1m 39s
从报错信息来看是找不到 org.apache.batik:org.apache.batik.dom.svg:1.6.0-20081006 这个jar包。首先我怀疑是仓库的问题,我给它换成了阿里云的仓库。但是还是报错,显示阿里云仓库也没有这个jar包。
那么我尝试打开 https://repo.maven.apache.org/maven2/org/apache/batik/org.apache.batik.dom.svg/ 这个网址,发现不存在。那么我往上级目录看看,即 https://repo.maven.apache.org/maven2/org/apache/batik/,竟然也不存在。但是 https://repo.maven.apache.org/maven2/org/apache/是存在的。也就是说 batik 这个项目没了。后来查看了其他仓库(比如阿里云镜像),也都没有这个项目了。
那么我再在 meavn repository 中查找这个包,是存在的。而且一共也就那么两个版本,下图的1.6.0就是最新版本了,虽然它是2009年的。

那么尝试一下下图的新版本的 org.apache.batik.dom.svg,然后就可以了。

总结:
gradle 在build的时候经常会出现依赖无法获取的情况,有可能是jcenter这种仓库被关闭的原因,还有就是这种老版本的jar包不存在的原因。解决办法就是用国内仓库替换,或者使用新的jar包(但是新的jar有可能在项目中不能用)。

在尝试编译名为PUTflap的项目时,遇到了Gradle build失败的问题,原因是无法找到org.apache.batik:org.apache.batik.dom.svg:1.6.0-20081006的依赖。检查多个仓库后发现该版本的jar包已不存在。通过搜索发现最新版本为1.6.0,并成功替换旧版本解决问题。这提示我们,遇到类似问题时,可以考虑更换国内仓库或升级依赖版本。
5123

被折叠的 条评论
为什么被折叠?



