如何在应用中引入Glue 4.x依赖?无法找到对应Jar包
解决AWS Glue 4.x依赖引入失败问题
核心原因:从AWS Glue 4.0开始,官方不再将com.amazonaws:AWSGlueETL核心包发布到公开的aws-glue-etl-artifacts S3 Maven仓库,所以直接修改版本号会出现依赖找不到的错误。
以下是几种可行的解决方法:
方案1:使用Glue本地开发工具包(推荐本地开发场景)
- 从AWS Glue控制台下载对应4.0版本的开发工具包(包含所有依赖jar包)
- 在sbt项目中配置本地依赖:
// 添加核心Glue ETL包 unmanagedJars in Compile += file("/本地路径/aws-glue-libs/glue-assembly-4.0.0.jar") // 添加工具包中所有依赖jar的目录 unmanagedBase := file("/本地路径/aws-glue-libs/jars")
方案2:配置AWS专用Maven仓库并使用新依赖坐标
Glue 4.x的部分依赖已上传至AWS的Maven仓库,可通过以下配置引入:
在build.sbt中添加仓库和依赖:
// 添加AWS官方Maven仓库 resolvers += "AWS Maven Repository" at "https://aws.oss.sonatype.org/content/repositories/releases/" // 使用Glue 4.x的新依赖坐标 lazy val awsGlue = "software.amazon.glue" % "glue-etl" % "4.0.0"
注意:部分核心组件(如GlueContext)可能仍需本地开发包补充,建议结合方案1使用。
方案3:使用Glue Runtime容器构建(CI/CD场景)
如果是自动化构建环境,可直接使用AWS官方提供的Glue 4.0 Runtime容器,容器内已预装所有依赖:
# 启动Glue 4.0容器 docker run -it --rm amazon/aws-glue-libs:glue-4.0 bash # 在容器内执行sbt构建命令 sbt compile
额外注意事项
- Glue 4.0对应Spark 3.3版本,需同步升级项目中Spark相关依赖版本,避免兼容性问题
- 自定义UDF、第三方库可能需要适配Glue 4.x的API变更
内容的提问来源于stack exchange,提问作者Chris Bedford
相关产品推荐
相关产品推荐

