基于dremio 安装包进行源码依赖包maven 私服重建的一个思路
dremio 25.0 版本已经发布了,但是如果希望自己源码构建,但是缺少一些依赖造成编译会有问题,但是我们可以直接基于官方提供的
下载包的文件进行maven 私服的重建,以下说明下简单流程
参考流程
- 下载软件包
这个可以从dremio 官网下载到
- 最好选择一个可以构建的分支本地构建下
此步骤的目的是缺少dremio 老版本的一些依赖本地有缓存信息,这样可以参考
- 阅读dremio oss 根目录的pom.xml 文件
此文件包含了dremio 自己fix 的三方依赖包,也就是我们需要处理的,一般格式是version比较长或者包含dremio 结尾的
- 分析缺少的包
这个是一个体力活,需要多次验证测试,才能知道那些包是缺少的,记录下
- 使用一些ide 工具(idea,或者jd-gui) 查看依赖包的元数据信息
实际上就是pom.xml 的获取,如果是没有依赖的比较方便,如果有依赖的注意查看依赖
- 使用mvn install 命令安装缺少的jar 到本地私服中
注意此步中可能会包含缺少parent 依赖的问题,此步没有太好的方法,核心是参考以前的,进行复制修改(核心是版本号)
参考命令
mvn install:install-file -Dfile=parquet-arrow-1.12.0-202401170902060351-7e47493.jar -DgroupId=org.apache.parquet -DartifactId=parquet-arrow -Dversion=1.12.0-202401170902060351-7e47493 -Dpackaging=jar -DpomFile=./meta/parquet-arrow.xml
测试包的install
mvn install:install-file -Dfile=parquet-hadoop-1.12.0-202309080020000384-9c11bcb-tests.jar -DgroupId=org.apache.parquet -DartifactId=parquet-hadoop -Dversion=1.12.0-202401170902060351-7e47493 -Dpackaging=test-jar -Dclassifier=tests
注意以上的-DpomFile 中的元数据信息就是我们参考jar 中的,以及按需修改的(尤其是多模块的,实际上我们注意处理的都是多模块啊的,主要是parent 依赖的处理,修改为实际使用的版本)
- 重新尝试构建
这个估计得尝试多次,因为缺少那些依赖实际上是不清楚的,只能多次尝试
- 多余一些无关紧要的模块可以注释掉
比如hive 相关的,一些场景我们可能使用不到,直接注释,可以规避一些问题
说明
以上是一个简单实践,通过此方法基本可以本地构建成功,方便分析学习,但是可能会有问题不确保运行正常,实际还是应该等官方的repo 可用,如果是临时fix 功能,此中方法也是可以的,之后通过替换class 文件或者jar 文件都是可以的
参考资料
https://download.dremio.com/
https://github.com/dremio/dremio-oss
https://stackoverflow.com/questions/33548395/how-do-i-force-maven-to-use-my-local-repository-rather-than-going-out-to-remote
https://maven.apache.org/guides/introduction/introduction-to-repositories.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· spring官宣接入deepseek,真的太香了~
2023-04-11 arroyo sql 处理
2023-04-11 arroyo single docker 镜像说明
2023-04-11 arroyo 开发说明
2023-04-11 arroyo集群部署简单说明
2023-04-11 arroyo 组件简单说明
2023-04-11 arroyo+redpanda 集成试用
2021-04-11 cube.js 配置自定义basePath 扩展cube.js 多租户处理