hive编译问题

编译

mvn clean package -Pdist -DskipTests

问题1

异常信息

Failed to collect dependencies at net.shibboleth.tool:xmlsectool.jar:2.0.0

 解决方法

        从官网下载xmlsectool.jar包到本地:https://build.shibboleth.net/nexus/content/groups/public/net/shibboleth/tool/xmlsectool/2.0.0/​​​​​​​q

然后执行手动安装

mvn install:install-file -DgroupId=net.shibboleth.tool -DartifactId=xmlsectool -Dversion=2.0.0 -Dpackaging=jar -Dfile=./xmlsectool-2.0.0.jar

方法参考

java - Could not find net.shibboleth.tool:xmlsectool:2.0.0 - Stack Overflow

cas 编译安装依赖时提示: Failure to find net.shibboleth.tool:xmlsectool:jar:2.0.0_zhouzhiwengang的专栏-CSDN博客

问题2

异常信息

Failed to collect dependencies at io.confluent:kafka-avro-serializer:jar:5.4.0

方法1

在settings.xml配置mirror

<mirror>
      <id>confluent</id>
      <mirrorOf>external:http:*</mirrorOf>
      <name>Pseudo repository to mirror external repositories initially using HTTP.</name>
      <url>https://packages.confluent.io/maven/</url>
      <blocked>true</blocked>
    </mirror>

方法2

        首先,在settings.xml的mirror开头处设置禁止confluent从其他镜像拉取,从模块pom文件的repositories配置的路径拉取。注意:要在mirrors的开头地方设置,如果在后面,可能已经被其他镜像拦截了,最终执行不到。

  <mirrors>
    <mirror>
        <id>nexus</id>
        <mirrorOf>*,!confluent</mirrorOf> <!-- mirror anything but confluent as Nexus cannot proxy it -->
        <url>repository.company.local/nexus/content/groups/public</url>
    </mirror>
……

  </mirrors>

        其次,在对应模块(kafka-handler)的pom.xml设置。注意:这部分hive的pom文件已存在,贴出来只是防止编译其他工程的时候,也可用此方法。

<repositories>
  <repository>
    <id>confluent</id>
    <url>https://packages.confluent.io/maven/</url>
  </repository>
</repositories>

        这种方法有弊端,settings.xml设置可能影响其他模块编译,重新编译hive的时候就有问题。

方法3

        可以参考问题2的解决方法,问题本质上是相同的。

方法参考

apache kafka - Confluent Maven repository not working? - Stack Overflow

问题总结

  1. “Failed to collect dependencies at”,都是第三方包依赖问题,因为第一次编译,先看本地环境有没有,没有就从mavlen的配置文件settings.xm配置的mirror、模块pom文件设置的repositories找,很多时间网络环境差异问题,也可能是第三方包没有放到Maven Repository等通用存储库,远程下载第三方包依赖失败。
  2. 只要想方设法,无所不用其极,将第三方包安装到本地环境,后面再依赖同样第三方包的问题就不会再次出现问题了,因为本地环境已经安装,maven会先从本地安装环境找。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值