Scala项目sbt无法解析apache commons-math4依赖问题求助
问题原因
Apache Commons Math 4的单体4.0-SNAPSHOT版本早已停止官方维护,项目已经被拆分为多个独立的子组件(包括commons-numbers、commons-statistics、commons-rng等)进行迭代发布。你依赖的老版本commons-math4:4.0-SNAPSHOT引用的commons-numbers-rootfinder:1.0-SNAPSHOT等快照版本早已从Apache公共快照仓库中清理下架,因此无法拉取到对应的依赖包。
解决方案
按你的需求可以选择以下任意一种方案处理:
- 方案一:切换到稳定维护的Commons Math 3版本(无需快照仓库,兼容性好)
直接删除build.sbt中的resolvers配置行,替换依赖为正式发布的math3稳定版即可,修改后的build.sbt对应配置如下:name := "math4test" version := "0.1" scalaVersion := "3.0.2" libraryDependencies += "org.apache.commons" % "commons-math3" % "3.6.1" - 方案二:直接使用Math4拆分后的独立子组件正式版本
如果确实需要使用原Math4新增的功能,不需要依赖老的commons-math4快照包,直接按需引入拆分后的子组件正式版即可,所有组件都已发布到Maven中心库,不需要额外配置仓库。比如你需要用到根查找能力,就添加如下依赖:
其他需要用到的数学能力可以对应查找Apache Commons拆分后的对应子组件的稳定版本引入。libraryDependencies += "org.apache.commons" % "commons-numbers-rootfinder" % "1.1" - 方案三(不推荐):本地编译老版本快照
如果你必须使用原有commons-math4:4.0-SNAPSHOT版本,需要拉取Apache Commons Math仓库的历史代码到本地,手动执行编译安装到本地Maven仓库后即可在项目中正常依赖。
内容的提问来源于stack exchange,提问作者Mark Grechanik
相关产品推荐
相关产品推荐

