【深思】代码可以说永不变质,但也会随着时间变得不可用

背景

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,已经无法访问的。
net.sf.ehcache

  <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>
posted @ 2022-10-18 19:33  一杯半盏  阅读(60)  评论(0编辑  收藏  举报