写gradle脚本的时候,除了mavenCentral ( 位置 https://repo1.maven.org/maven2/ ),还会添加一些其它仓库,如mavenLocal(), maven { url ‘http://repo.spring.io/plugins-release’ },甚至自己搭建的nexus仓库。但有时构建的过程中某些构件的下载异常缓慢,本文介绍笔者加速该过程的一些技巧。
2017-03-12 更新
要将私有仓库放置在 repositories 的前边,因为构建时是按顺序在各个仓库查找需要的构件,如果将私有仓库置于后边,即使含有相应的构件,也会优先从公有仓库中下载,这样自己的仓库就起不到代理的作用了。
请注意区分:构建 > build; 构件 > artifact
假如构建卡在了下面而你又不想死等。
手动下载并上传到Nexus仓库
复制构件地址并使用wget、浏览器或迅雷进行下载。然后将下载的构建进行上传:
在gradle脚本中添加nexus仓库地址,即可从Nexux仓库下载需要的构件了。需要注意的是添加的顺序,个人认为添加到mavenCentral()前较好。
至此已经解决了加速的问题,但跟本文的题目没有半毛钱关系啊!我TM要把构件下载到 mavenLocal(),好吧,刚才那个过程已经把构件下载到本地了。
其实我想介绍下面这个命令:
顺便贴一个Maven的配置文件,详细的配置解释见 Apache Maven Settings Reference。加入下面的配置文件配置了Nexus仓库的地址,使用上述的命令会先把构件下载到Nexus仓库,再下载到mavenLocal(),相当于把Nexus作为代理。
Reference:
1 A simple command line to download a remote maven2 artifact to the local repository?