SBT添加Athena JDBC依赖时出现Connection reset错误求助
解决sbt添加Athena JDBC依赖时的连接重置及文件找不到问题
问题背景
浏览器和普通HTTP请求可正常下载AthenaJDBC42-2.1.1.1001.jar,但在build.sbt中使用带from的依赖语句时,出现连接重置错误,且提示jar不在指定路径下。核心原因是sbt会优先尝试从maven仓库拉取对应pom文件,同时对from参数的解析逻辑不符合预期——它会将URL视为仓库根路径,而非直接的文件下载地址。
解决办法
方法1:使用本地非托管依赖
- 手动下载
AthenaJDBC42-2.1.1.1001.jar到项目根目录下的lib文件夹(无此文件夹则新建) - 无需在build.sbt中添加该依赖的代码,sbt会自动加载
lib目录下所有jar包
方法2:修正sbt依赖写法
明确指定仅处理jar artifact,跳过pom检查,避免sbt错误解析from路径:
libraryDependencies += "Athena" % "AthenaJDBC42" % "2.1.1.1001" artifacts(Artifact("AthenaJDBC42", "jar", "jar")) from "https://downloads.athena.us-east-1.amazonaws.com/drivers/JDBC/SimbaAthenaJDBC-2.1.1.1001/AthenaJDBC42-2.1.1.1001.jar"
若不需要该依赖的传递依赖,可追加intransitive():
libraryDependencies += "Athena" % "AthenaJDBC42" % "2.1.1.1001" intransitive() from "https://downloads.athena.us-east-1.amazonaws.com/drivers/JDBC/SimbaAthenaJDBC-2.1.1.1001/AthenaJDBC42-2.1.1.1001.jar"
方法3:将jar安装到本地仓库
通过命令将jar安装到本地Maven/Ivy仓库,让sbt直接从本地获取:
- 打开命令行,切换到jar所在目录
- 执行以下命令:
sbt publishM2 -Dartifact=AthenaJDBC42-2.1.1.1001.jar -DgroupId=Athena -DartifactId=AthenaJDBC42 -Dversion=2.1.1.1001
- 在build.sbt中添加常规依赖:
libraryDependencies += "Athena" % "AthenaJDBC42" % "2.1.1.1001"
内容的提问来源于stack exchange,提问作者Cherry
相关产品推荐
相关产品推荐

