当先锋百科网

首页 1 2 3 4 5 6 7

背景

最近在修hive-1.2.0的一个bug,需要修改后重新打包部署到集群,打包的时候报下面的错误,原因很简单,从远程仓库里面已经拉不到这个包了。

org.pentaho:pentaho-aggdesigner-algorithm:jar:5.1.5-jhyde was not found in http://www.datanucleus.org/downloads/maven2 during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of datanucleus has elapsed or updates are forced

原因分析

去https://mvnrepository.com/检索org.pentaho:pentaho-aggdesigner-algorithm提示在该包是在https://repo.spring.io/plugins-release/托管的,实际该包已经从https://repo.spring.io/plugins-release/移除。

在这里插入图片描述
在这里插入图片描述

解决方法

方法一

实际还没解决!!!,本地仓库有了还是会去远端仓库拉,奇怪!
简单暴力,也没有什么花里胡哨的东西,使用最直接的方式解决!
下载需要的jar包直接打到本地仓库

  1. 需要的jar包自行在网上把包下载下来,推荐 > https://mvnrepository.com/
  2. 编写maven install 命令
mvn install:install-file -DgroupId=org.pentaho -DartifactId=pentaho-aggdesigner-algorithm -Dversion=5.1.5-jhyde -Dpackaging=jar -Dfile=D:\pentaho-aggdesigner-algorithm-5.1.5-jhyde.jar
  1. 执行maven install命令,在本地仓库部署依赖的包
    在这里插入图片描述
  2. 在项目中重新编译

方法二

用该方法解决!!!
国内阿里的依赖包托管仓库(https://developer.aliyun.com/mvn/search)包比较全,好多已经从官方删除的依赖包这里都能够找得到,阿里整合的各家的库也都是独立分库的,找需要包的时候需要注意我们需要的包在哪个对应的仓库下。
在这里插入图片描述
比如我们需要的org.pentaho:pentaho-aggdesigner-algorithmspringspring-plugin2个仓库下都有,我们只需要在本地maven配置setting.xml中添加2个仓库镜像地址中的一个就可以了,我添加的是spring的,如下

  	<mirror>
	  <id>aliyunmaven-spring</id>
	  <mirrorOf>*</mirrorOf>
	  <name>阿里云spring仓库</name>
	  <url>https://maven.aliyun.com/repository/spring</url>
	</mirror>

hive编译有很多依赖包不在spring的仓库内的,我们首先依赖库放第一位的是中央库(center),然后才是spring的仓库。最终的maven依赖配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <localRepository>D:\repo</localRepository>

  <pluginGroups>
  </pluginGroups>
  
  <proxies>
  </proxies>

  <servers>
  </servers>

  <mirrors>
  
    <mirror>
	  <id>aliyunmaven-central</id>
	  <mirrorOf>central</mirrorOf>
	  <name>阿里云central仓库</name>
	  <url>https://maven.aliyun.com/repository/central</url>
	</mirror>
  
  	<mirror>
	  <id>aliyunmaven-spring</id>
	  <mirrorOf>*</mirrorOf>
	  <name>阿里云spring仓库</name>
	  <url>https://maven.aliyun.com/repository/spring</url>
	</mirror>

	<mirror>
	  <id>aliyunmaven</id>
	  <mirrorOf>*</mirrorOf>
	  <name>阿里云公共仓库</name>
	  <url>https://maven.aliyun.com/repository/public</url>
	</mirror>

  </mirrors>

  <profiles>
  </profiles>

</settings>

配置好后,执行hive编译打包命令即可。

mvn clean package -DskipTests -Phadoop-2 -Pdist

在这里插入图片描述

参考文档

https://www.cnblogs.com/youchi/p/13600153.html