You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

构建Google Dataflow模板时Maven卡在下载maven-default-http-blocker如何解决

问题根因

你遇到的maven-default-http-blocker不是本地缓存,是Maven 3.8.1及以上版本默认内置的安全规则,会自动将所有使用HTTP协议的远程仓库镜像指向0.0.0.0,阻止从不加密的HTTP源下载依赖,避免供应链攻击。你使用的Google Dataflow模板的pom文件中配置了多个HTTP协议的第三方仓库,刚好触发了该规则。

解决方法

你可以根据需求选择以下任意一种方案:

  • 方案1:临时绕过(最快适配现有项目)
    找到本地Maven的全局配置文件settings.xml,默认路径为~/.m2/settings.xml(Mac/Linux系统)或C:\Users\你的用户名\.m2\settings.xml(Windows系统),找到如下配置段,将其注释或删除后保存即可:

    <mirror>
      <id>maven-default-http-blocker</id>
      <mirrorOf>external:http:*</mirrorOf>
      <url>http://0.0.0.0/</url>
      <blocked>true</blocked>
    </mirror>
    

    配置修改完成后重新执行构建命令即可。

  • 方案2:更安全的项目级修改(推荐,无需改动全局Maven配置)
    直接修改你拉取的Dataflow模板项目的pom.xml文件,把所有HTTP协议的仓库地址替换为对应的HTTPS协议版本,你日志中出现的所有HTTP仓库均支持HTTPS访问:

    • 把http://packages.confluent.io/maven/替换为https://packages.confluent.io/maven/
    • 把http://repository.ow2.org/nexus/content/repositories/snapshots替换为https://repository.ow2.org/nexus/content/repositories/snapshots
    • 把http://repository.jboss.org/nexus/content/groups/public/替换为https://repository.jboss.org/nexus/content/groups/public/
    • 剩余的java.net、sonatype等所有HTTP开头的仓库地址,统一替换为HTTPS开头的对应地址即可
      修改完成后重新执行构建命令即可,该方案符合Maven的安全要求,不会影响其他项目的构建规则。
  • 方案3:缓存报错处理
    如果修改完成后仍然出现依赖找不到的缓存类报错,可在构建命令中添加-U参数强制更新快照依赖,修改后的命令如下:

    mvn -U compile exec:java \
    -Dexec.mainClass=com.google.cloud.teleport.templates.<template-class> \
    -Dexec.cleanupDaemonThreads=false \
    -Dexec.args=" \
    --project=<project-id> \
    --stagingLocation=gs://<bucket-name>/staging \
    --tempLocation=gs://<bucket-name>/temp \
    --templateLocation=gs://<bucket-name>/templates/<template-name>.json \
    --runner=DataflowRunner"
    

内容的提问来源于stack exchange,提问作者bli00

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 17:45:01