mirrorOf 是 central 還是 * 的問題
在配置阿里對官方中央倉庫的鏡像服務器時,我們使用到了 <mirror>
元素。
<mirror><id>aliyunmaven</id><mirrorOf>central</mirrorOf><name>阿里云公共倉庫</name><url>https://maven.aliyun.com/repository/public</url>
</mirror>
故名思意,<mirror>
用于配置網絡倉庫的『鏡像』。當你準備去默認的中央倉庫下載包和插件時,Maven 會『攔截』你的下載請求,轉而去你所配置的『鏡像網址』下載,從而也能實現從指定的國內的網址下載。
而 <mirror>
元素的子元素 <mirrorOf>
的值常見兩種:central 和通配符 * 。
central 和 * 的區別在于:
-
如果是 central,那么 maven 只會將你的從『中央倉庫』下載請求(無論是 jar 包,還是插件包),轉向你所配置的鏡像地址。
-
如果是 * ,那么 maven 會將你的『所有』下載請求轉向你所配置的鏡像地址。
如果你要下載一個不在中央倉庫的包(或插件),例如 tomcat8-maven-plugin ,
-
如果你配置的值是 central,那么 maven 會去你所配置的『別的』倉庫下載,因為中央倉庫沒有這個包;
-
如果你配置的值是 *,那么無論這個包在不在中央倉庫,maven 只會去中央倉庫下載。有,則有;沒有,則沒有。