有个小伙伴遇到一个疑问:他的工作笔记本,在公司用部门搭建的maven私服做镜像,回到家用aliyun的镜像,每次都要改配置文件,很麻烦,希望能够不改动配置文件的情况下,动态切换mirror配置。
我们知道 settings.xml 中可以使用变量,可以尝试使用变量解决。
<mirrors>
<mirror>
<id>aliyun</id>
<url>https://maven.aliyun.com/repository/public</url>
<mirrorOf>${aliyun}</mirrorOf>
</mirror>
<mirror>
<id>netease</id>
<url>http://mirrors.163.com/maven/repository/maven-public/</url>
<mirrorOf>${netease}</mirrorOf>
</mirror>
<mirror>
<id>default</id>
<url>http://192.168.0.100/nexus/repository/maven-public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
我们知道,默认情况下配置多个mirror的情况下,只有第一个生效。那么我们可以将最后一个作为默认值,前面配置的使用环境变量动态切换。
默认情况下,执行: mvn help:effective-settings 可以看到使用的是私服。
如果希望使用阿里云镜像,如下执行:
mvn help-effective-settings -Daliyun=central
同样的道理,使用网易镜像,则执行:
mvn help:effective-settings -Dnetease=central
测试无误。
如果在eclipse中,需要修改运行脚本的参数。