sbt - 排除匹配模式的所有依赖项

时间:2017-03-17 07:44:15

标签: scala sbt

我正在将我的scala项目之一升级到Scala 2.11.7但它有一些依赖项目。他们正在使用2.10所以它引用了很多依赖库和2.10 scala版本(例如:com.novus:salat-core_2.10:1.9.9)我想要排除哪个和所有都有“_2.10-”而不是写一个一个人。

有可能吗? 如果有,怎么样?请你帮我看看。

1 个答案:

答案 0 :(得分:0)

1:使用scala版本并提供sbt以选择%%

的正确版本
scalaVersion := "2.11.7"

val scalaz = "org.scalaz" %% "scalaz-core" % "7.1.0"

2:要明确排除具有2.10构建版本的依赖项,请使用自定义方法

// exclude from all with rule which check whether artifact name contains 2.10 
def excludeFromAll(items: Seq[ModuleID], group: String, artifact: String) =
  items.map(x => if(x.name.contains("_2.10")) x.exclude(group, artifact))

//all your dependencies
val deps = Seq(dependencies) //library Dependencies.

//exlusion
val appDependencies = excludeFromAll(deps, _, _)