今天学习了一下Hive的自定义函数,于是乎想练习一下在本地编写一个自定义的函数,然后打包上传到集群,再进行执行的过程。但是中间遇到了一些小挫折,就是当我打包的时候,除了导入正常所需要的org.apache.hive包之外,并没导入其他的包。但是开始打包以后,报错了,报错信息如下:
Could not find artifact org.pentaho:pentaho-aggdesigner-algorithm:jar in http://maven.aliyun.com/nexus/content/group/public
根据这个日志信息,就知道是缺少这个包了,于是乎最开始想的是手动去下载一下这个包,所以就去maven的官网下载了这个jar包,然后放在了本地仓库的对应路径下:
……apache-maven-3.5.4maven-reposorgpentahopentaho-aggdesigner-algorithm5.1.5-jhyde
路径的省略部分就是maven的存放路径,这个根据自己的实际情况来定。
下载完以后,然后重启IDEA,同时在pom.xml文件中导入了相应的依赖:
<dependency> <groupId>org.pentaho</groupId> <artifactId>pentaho-aggdesigner-algorithm</artifactId> <version>5.1.5-jhyde</version> <scope>test</scope> </dependency>
但是发现,版本号依旧显示红色,我尝试了一下进行“maven package”操作,在下方的控制台显示的依旧是上面那个报错信息,但是却能够成功的进行打包操作,这我就有点蒙蔽,而且这个jar包上传到集群以后是可以正常运行的,那么到底为啥会发生如此的事情呢?难道是IDEA和jar版本的问题?还是maven和jar包的版本问题,在网上查阅了很多的方法都没有解决,最终再一次查看日志信息,大致意思是无法从阿里云这个仓库下找到这个Jar包,也就是说我在maven的配置文件中配置的阿里云的仓库里找不到5.1.5-jhyde这个jar包,那么到底怎么办呢?既然,没有,那就再加几个仓库呗,没有什么找不到包的问题是加几个仓库解决不了的,如果有,那么就多加几个。
那么,就打开maven根目录下的conf文件夹,然后修改setting.xml文件,添加两个镜像:
</mirror> <mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>spring-plugin</name> <url>https://maven.aliyun.com/repository/spring-plugin</url> </mirror> <mirror> <id>repo2</id> <name>Mirror from Maven Repo2</name> <url>https://repo.spring.io/plugins-release/</url> <mirrorOf>central</mirrorOf> </mirror>
保存退出,然后重启一下IDEA,同时刷新一下maven project,点击maven install,问题迎刃而解。
还是得认真看报错的日志信息啊,不能直接复制报错信息就去百度,太盲目了。
附上一个下载地址:https://public.nexus.pentaho.org/repository/proxy-public-3rd-party-release/org/pentaho/pentaho-aggdesigner-algorithm/5.1.5-jhyde/pentaho-aggdesigner-algorithm-5.1.5-jhyde.jar
有的人竟然把这个jar上传到某sdn,然后卖积分用,真是狗的狠啊,这是你的东西么,你就拿来卖?
参考链接:https://blog.csdn.net/zxctime/article/details/106007508