elasticsearch-hadoop.jar 6.8版本编译异常

## 背景

重新编译 elasticsearch-hadoop 包;

GitHub - elastic/elasticsearch-hadoop at 6.8

编译 7.17 版本时很正常,注意设置下环境变量就好,JAVA8_HOME/....

编译 6.8 版本时(要求jdk8 / jdk9),出现异常

1. Could not resolve org.springframework.build.gradle:propdeps-plugin:0.0.7.

2. Could not resolve cascading:cascading-local:2.6.3.

3. Could not resolve org.elasticsearch.gradle:build-tools:6.8.24-SNAPSHOT

4. Could not resolve cascading:cascading-hadoop:2.6.3.

## 分析(尝试逐个解决)

1. gradle 仓库修改

    // ali库 解决 Could not resolve org.springframework.build.gradle:propdeps-plugin:0.0.7.
    maven{ url 'https://maven.aliyun.com/repository/central'}
    maven{ url 'https://maven.aliyun.com/repository/public' }
    maven{ url 'https://maven.aliyun.com/repository/google'}
    maven{ url 'https://maven.aliyun.com/repository/gradle-plugin'}
    maven{ url 'https://maven.aliyun.com/repository/spring'}
    maven{ url 'https://maven.aliyun.com/repository/spring-plugin'}
    maven{ url 'https://maven.aliyun.com/mvn/guide'}
    maven{ url 'https://maven.aliyun.com/repository/apache-snapshots'}

2. esh-version.properties 修改

6.8.24-SNAPSHOT -> 6.8.23

3. cascading-local 这个包始终无法获取

## 最终解决

本质原因有2个,一个是 repo.spring.io 改造成需要验证了,不验证会有401;另一个是http://conjars.org/repo 已经失效了,需要替换;

所以前面修改的全部回滚,完整解决方案如下:

1. 处理 propdeps-plugin 包,增加阿里云的库

    // ali库 propdeps-plugin
    maven{ url 'https://maven.aliyun.com/repository/central'}
    maven{ url 'https://maven.aliyun.com/repository/public' }
    maven{ url 'https://maven.aliyun.com/repository/google'}
    maven{ url 'https://maven.aliyun.com/repository/gradle-plugin'}
    maven{ url 'https://maven.aliyun.com/repository/spring'}
    maven{ url 'https://maven.aliyun.com/repository/spring-plugin'}
    maven{ url 'https://maven.aliyun.com/mvn/guide'}
    maven{ url 'https://maven.aliyun.com/repository/apache-snapshots'}

2. 修改 buildSrc/src/main/groovy/org/elasticsearch/hadoop/gradle/BuildPlugin.groovy

全部的 http://conjars.org/repo 或者 https://conjars.org/repo

替换成 https://conjars.wensel.net/repo

## 参考:

1. Notice of Permissions Changes to repo.spring.io, January 2023

2. https://segmentfault.com/q/1010000043853512

3. spring源码编译问题解决1,Received status code 401 from server问题,not found问题,更换阿里云镜像_received status code 401 from server:-优快云博客

 4. https://github.com/elastic/elasticsearch-hadoop/issues/984

 5. How to build a plugin for a not yet released version? - Elasticsearch - Discuss the Elastic Stack

6. conjars.org: Connection timed out_http://conjars.org/repo 地址失效-优快云博客

elasticsearch-rest-client-6.4.3.jar 一直冲突可能有几个原因。 首先,可能是由于版本兼容性问题导致冲突。elasticsearch-rest-client-6.4.3.jarElasticsearch 的 REST 客户端,如果您的 Elasticsearch 版本与此客户端不兼容,可能会导致冲突。您可以尝试更新 Elasticsearch 或使用与您当前 Elasticsearch 版本兼容的 REST 客户端。 其次,冲突可能是由于您的项目中存在多个版本elasticsearch-rest-client-6.4.3.jar。当存在多个相同的 JAR 文件但版本不同的情况下,可能会发生冲突。您可以检查项目的依赖关系,确保只引入一个版本elasticsearch-rest-client-6.4.3.jar。 另外,冲突可能是由于其他依赖项与 elasticsearch-rest-client-6.4.3.jar 冲突。在一些情况下,某些依赖项可能需要特定版本JAR 文件,并且与 elasticsearch-rest-client-6.4.3.jar版本冲突。您可以检查项目的所有依赖项,并确保它们与 elasticsearch-rest-client-6.4.3.jar版本兼容。 最后,冲突可能是由于项目中存在其他冲突的依赖项引起的。当项目中存在多个依赖项,它们之间存在冲突时,可能会导致冲突。您可以使用 Maven 或 Gradle 等构建工具来分析项目的依赖关系,并解决任何冲突。 总之,elasticsearch-rest-client-6.4.3.jar 一直冲突可能是由于版本兼容性问题、多个 JAR 文件的存在、与其他依赖项的冲突或其他原因引起的。您可以通过检查兼容性、解决版本冲突、检查依赖项并解决冲突等方式来解决这个问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值