SBT 1.9.2编译Spark自定义模块触发URISyntaxException错误求助
问题分析与解决建议
优先排查插件兼容性:SBT 1.9.x相对于1.5.x有不少底层变动,很多Spark相关的SBT插件(比如sbt-assembly、自定义Spark构建插件)可能未适配新版本。检查
plugin.sbt中的插件版本,替换为支持SBT 1.9.2的最新版本后重新编译测试。处理未解析的Maven属性:
${baidu-rpc.artifactId}是Maven风格的属性变量,SBT 1.9.x对依赖路径的解析更严格——旧版可能会忽略未解析的变量,新版则直接抛出异常。你可以:- 在
build.sbt或SparkBuild.scala中手动定义该属性,比如:val baiduRpcArtifactId = "你的baidu-rpc实际artifactId" - 直接将依赖中的变量替换为具体的artifactId值,避免使用占位符。
- 在
排查隐式插件的影响:部分Maven相关解析插件可能在SBT 1.9.x中默认启用了严格模式,导致未解析的属性暴露。尝试临时注释
plugin.sbt中的非核心插件,逐个排查哪个插件触发了该问题。验证是否为SBT官方Bug:如果上述操作都无效,可尝试降级到SBT 1.8.x版本测试是否恢复正常。同时可以查看SBT官方GitHub Issues,搜索是否有其他用户遇到相同的
URISyntaxException与未解析变量问题,确认是否为版本Bug。
内容的提问来源于stack exchange,提问作者JiangHaonan
相关产品推荐
相关产品推荐

