执行SBT命令报错:object util is not a member of package com.amazonaws.services.glue
解决找不到
com.amazonaws.services.glue.util的问题 我帮你排查下这个问题——你遇到的object util is not a member of package com.amazonaws.services.glue错误,本质是因为Glue的工具类(包括你需要的getResolvedOptions)并不在标准AWS Java SDK里,而是属于AWS Glue专属的类库,你需要在项目中明确添加这个依赖才能正常引用。
第一步:修正sbt依赖配置
在你的build.sbt文件中,需要先添加AWS的Maven仓库(因为Glue专属库不在Maven Central),再引入Glue工具类依赖:
// 指定Scala版本(你已经在用2.11.12) scalaVersion := "2.11.12" // 添加AWS的Maven仓库 resolvers += "AWS Maven Repository" at "https://aws.oss.sonatype.org/content/repositories/releases/" // 引入Glue工具类依赖,建议用Provided scope(因为Glue运行时环境自带这个库,无需打包) libraryDependencies += "com.amazonaws" % "aws-glue-libs" % "1.0.0" % Provided
注意:如果你需要本地运行测试代码,可以去掉
% Provided,或者单独为test scope添加依赖。另外,针对Scala 2.11,推荐使用aws-glue-libs的1.x版本,2.x版本主要适配Scala 2.12及以上。
第二步:重新编译项目
修改完依赖后,重新执行你的编译命令:
sbt ++2.11.12 clean update package
这时候sbt会从AWS仓库拉取所需的依赖,应该就能解决编译报错了。
第三步:修复IntelliJ的依赖识别问题
之前你试过通用的IntelliJ依赖修复方案,但问题根源是依赖本身没加对。现在添加完正确的依赖后,只需:
- 打开IntelliJ的sbt工具窗口(一般在右侧边栏)
- 点击"Reload All SBT Projects"按钮
- 等待同步完成,
Cannot resolve symbol util的错误就会消失
补充说明
com.amazonaws.services.glue的核心客户端类确实在标准AWS SDK里,但util子包是Glue团队专门提供的工具集(比如解析作业参数的getResolvedOptions),必须引入专属的aws-glue-libs才能使用。
内容的提问来源于stack exchange,提问作者Sam Malayek
相关产品推荐
相关产品推荐

