我找到了两种方法,可以根据情况选择。
全局设置
TODO ~/.m2/settings.xml
可能不存在
在~/.m2/settings.xml
中,找到<mirrors>
,在其中添加以下内容:
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
将这个url变成central
(即maven官方镜像的id)的代理,以后所有对central
的请求,全部转发到这里。
这种方法的好处是,设置一次后,所有的项目都能享受,比较方便;坏处是,如果在教学时,还需要教别人怎么设置。
在项目中设置
在项目的pom.xml
中不支持<mirror>
,我们需要在<project>
内添加以下内容:
<repositories>
<repository>
<id>central</id>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</pluginRepository>
</pluginRepositories>
注意这里的id
都使用了central
这个名字,是想覆盖掉maven自己定义的central
。这样就可以了。
这种做法的好处是,下载这个项目源代码后,直接就可以用了,不需要修改别的文件;缺点就是如果有多个项目,每个都要这么设置一下。
如何确认生效
运行mvn
命令的时候,加上-X
参数,仔细检查是否所有的下载都是来自aliyun。但是这样可能有个问题,就是运行一次后,依赖的包下载到本地后,可能就不会从网上重新下载了,无法验证。
这时可以使用下面的命令,清除测试项目使用的本地依赖去掉,并重新下载:
mvn dependency:purge-local-repository -X
观察显示出来的url即可(可以搜索apache
或者maven2
等关键字,查看用到的url)