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

被折叠的 条评论
为什么被折叠?



