【深思】代码可以说永不变质,但也会随着时间变得不可用
背景
Java应用 依赖各种Maven中央仓库,第三方仓库。
然而过低的版本,例如 Hadoop生态的某些发行版,org.apache.hive:hive-exec:1.1.0-cdh5.16.2,是有可能无法访问的。
再例如 net.sf.ehcache,虽然在中央仓库内有,新版已经变成了 org.ehcache:ehcache。在考虑兼容性的情况下,使用net.sf.ehcache,暂时是没问题的,
但是这个jar内部的repository,已经无法访问的。
<repositories>
<repository>
<id>terracotta-snapshots</id>
<url>http://www.terracotta.org/download/reflector/snapshots</url>
</repository>
<repository>
<id>terracotta-releases</id>
<url>http://www.terracotta.org/download/reflector/releases</url>
</repository>
</repositories>
Maven 构建受到影响
这对Maven构建会造成影响,maven 在不同的仓库中尝试下载 artifact。遇到这种仓库,网络可能会一直连接,浪费较大的时间,导致项目无法构建。
应对方案
可以配置Mirror对仓库进行Block:
<mirror>
<id>maven-repo-blocker-by-slannka</id>
<mirrorOf>terracotta-snapshots,terracotta-releases</mirrorOf>
<name>Pseudo repository to mirror external repositories.</name>
<url>http://0.0.0.0/</url>
<blocked>true</blocked>
</mirror>