maven 中配置多个mirror的问题

有个小伙伴遇到一个疑问:他的工作笔记本,在公司用部门搭建的maven私服做镜像,回到家用aliyun的镜像,每次都要改配置文件,很麻烦,希望能够不改动配置文件的情况下,动态切换mirror配置。

我们知道 settings.xml 中可以使用变量,可以尝试使用变量解决。

<mirrors>
  <mirror>
    <id>aliyunid>
    <url>https://maven.aliyun.com/repository/publicurl>
	<mirrorOf>${aliyun}mirrorOf>
  mirror>
  <mirror>
    <id>neteaseid>
    <url>http://mirrors.163.com/maven/repository/maven-public/url>
    <mirrorOf>${netease}mirrorOf>
  mirror>
   <mirror>
    <id>defaultid>
    <url>http://192.168.0.100/nexus/repository/maven-public/url>
    <mirrorOf>centralmirrorOf>
  mirror>
mirrors>

我们知道,默认情况下配置多个mirror的情况下,只有第一个生效。那么我们可以将最后一个作为默认值,前面配置的使用环境变量动态切换。

默认情况下,执行: mvn help:effective-settings 可以看到使用的是私服。

如果希望使用阿里云镜像,如下执行:

mvn help-effective-settings -Daliyun=central

同样的道理,使用网易镜像,则执行:

mvn help:effective-settings -Dnetease=central

测试无误。

如果在eclipse中,需要修改运行脚本的参数。

你可能感兴趣的:(Maven)