Grails v2.0.3依赖解析失败求助
解决Grails 2.0.3依赖解析失败及仓库访问问题
核心问题分析
- Grails 2.0.3属于老旧版本,默认配置的HTTP仓库已逐步切换为HTTPS协议,原HTTP地址无法正常访问
org.grails.plugins:cookie:0.2、org.grails.plugins:geb:0.9.3、org.grails.plugins:google-analytics:2.3.3这类插件需从指定的Grails插件仓库或Maven中心拉取,默认配置可能缺失对应源
具体修复步骤
1. 更新仓库配置为HTTPS
修改项目根目录下的BuildConfig.groovy文件,替换所有HTTP仓库地址为HTTPS版本,并补充Grails官方插件仓库:
grails.project.dependency.resolution = { repositories { grailsPlugins() grailsHome() // 替换原HTTP的Maven中心为HTTPS版本 mavenCentral(url: "https://repo1.maven.org/maven2/") // 添加Grails核心仓库与插件仓库的HTTPS地址 mavenRepo "https://repo.grails.org/grails/core" mavenRepo "https://repo.grails.org/grails/plugins" } }
2. 确认插件依赖的仓库覆盖
cookie:0.2、google-analytics:2.3.3:需确保https://repo.grails.org/grails/plugins仓库已添加,这类Grails专属插件仅在此仓库分发geb:0.9.3:该版本与Grails 2.0.3兼容,可通过Maven中心或Grails核心仓库获取,确认配置中已包含对应源
3. 处理Ubuntu环境下的网络访问限制
- 若使用代理,在
~/.grails/settings.groovy中添加代理配置:
grails.project.dependency.resolution.proxy.host = "你的代理地址" grails.project.dependency.resolution.proxy.port = "代理端口" // 若代理需要认证,补充以下配置 grails.project.dependency.resolution.proxy.username = "代理用户名" grails.project.dependency.resolution.proxy.password = "代理密码"
- 检查系统防火墙或网络规则,确保允许访问443端口(HTTPS协议端口)
4. 清理本地缓存并重新拉取依赖
执行以下命令清除Grails本地缓存,避免旧缓存干扰依赖解析:
grails clean grails refresh-dependencies
额外注意事项
- Grails 2.0.3仅兼容Java 8,确认
JAVA_HOME指向Java 8环境(Ubuntu 16.04默认可通过java -version验证) - 若部分插件仍无法获取,可手动下载对应JAR包放入项目的
lib目录,再在BuildConfig.groovy中添加本地依赖:
dependencies { compile fileTree(dir: 'lib', include: ['*.jar']) }
内容的提问来源于stack exchange,提问作者Pramod Kumar
相关产品推荐
相关产品推荐

