最近需要搭建一个Nexus私服,完全不能连接外网的那种,各种Jar包都是手动拷过来的。
问题
第一次上传某个jar包(比如junit-4.12.jar)到Nexus上,然后调用 gradle build 可以正确下载到依赖包。但如果手动删掉了本地缓存的jar包(在 ~/.gradle 下),这时从Nexus的下载过程中断,或者Nexus上暂时不存在这个jar包,那么即使Nexus恢复了正常下载,下次执行 gradle build 时就一直提示不能够找到jar包。
解决方案
回到自己的工作目录下,带参数执行gradle强制刷新 ~/.gradle 下的文件缓存
gradle build --refresh-dependencies
参考 Gradle manual
The –refresh-dependencies option tells Gradle to ignore all cached entries for resolved modules and artifacts. A fresh resolve will be performed against all configured repositories,with dynamic versions recalculated,modules refreshed,and artifacts downloaded.
如果是Maven遇到不能刷新本地依赖的话,需要做两件事情: