scala.MatchError:org\apache\commons\io\IOCase.class(属于java.lang.String类)在sbt+;装配
当我使用sbt程序集时,它会打印如下错误:scala.MatchError:org\apache\commons\io\IOCase.class(属于java.lang.String类)在sbt+;装配,scala,sbt,sbt-assembly,Scala,Sbt,Sbt Assembly,当我使用sbt程序集时,它会打印如下错误: [error] (*:assembly) scala.MatchError: org\apache\commons\io\IOCase.class (of class java.lang.String) 以下是我的配置: 1、 汇编.sbt: import AssemblyKeys._ assemblySettings mergeStrategy in assembly := { case PathList("org", "springfra
[error] (*:assembly) scala.MatchError: org\apache\commons\io\IOCase.class (of class java.lang.String)
以下是我的配置:
1、 汇编.sbt:
import AssemblyKeys._
assemblySettings
mergeStrategy in assembly := {
case PathList("org", "springframework", xs@_*) => MergeStrategy.last
}
sbt:0.13.5
assembly:0.11.2
java:1.7
scala:2.11.8
2、 bulid.sbt
import AssemblyKeys._
lazy val root = (project in file(".")).
settings(
name := "DmpRealtimeFlow",
version := "1.0",
scalaVersion := "2.11.8",
libraryDependencies += "com.jd.ads.index" % "ad_index_dmp_common" % "0.0.4-SNAPSHOT",
libraryDependencies += "org.apache.spark" % "spark-core_2.11" % "2.1.0" % "provided",
libraryDependencies += "org.apache.spark" % "spark-sql_2.11" % "2.1.0" % "provided",
libraryDependencies += "org.apache.spark" % "spark-streaming_2.11" % "2.1.0" % "provided",
libraryDependencies += "mysql" % "mysql-connector-java" % "5.1.8",
libraryDependencies += "org.springframework" % "spring-beans" % "3.1.0.RELEASE",
libraryDependencies += "org.springframework" % "spring-context" % "3.1.0.RELEASE",
libraryDependencies += "org.springframework" % "spring-core" % "3.1.0.RELEASE",
libraryDependencies += "org.springframework" % "spring-orm" % "3.1.0.RELEASE",
libraryDependencies += "org.mybatis" % "mybatis" % "3.2.1" % "compile",
libraryDependencies += "org.mybatis" % "mybatis-spring" % "1.2.2",
libraryDependencies += "c3p0" % "c3p0" % "0.9.1.2"
)
3、 项目工具:
import AssemblyKeys._
assemblySettings
mergeStrategy in assembly := {
case PathList("org", "springframework", xs@_*) => MergeStrategy.last
}
sbt:0.13.5
assembly:0.11.2
java:1.7
scala:2.11.8
有什么帮助吗?问题可能在于汇编块中的mergeStrategy中缺少默认情况:
case x =>
val oldStrategy = (assemblyMergeStrategy in assembly).value
oldStrategy(x)
此外,mergeStrategy已被弃用,应改用assemblyMergeStrategy
基本上
{
case PathList("org", "springframework", xs@_*) => MergeStrategy.last
}
是仅为一种类型的输入定义的部分函数字符串=>MergeStrategy,即对于包前缀为“org\springframework”的类。但是,它应用于项目中的所有类文件,第一个与上述前缀不匹配的类文件(org\apache\commons\io\IOCase.class)会导致MatchError。问题可能在于汇编块中的mergeStrategy中缺少默认大小写:
case x =>
val oldStrategy = (assemblyMergeStrategy in assembly).value
oldStrategy(x)
此外,mergeStrategy已被弃用,应改用assemblyMergeStrategy
基本上
{
case PathList("org", "springframework", xs@_*) => MergeStrategy.last
}
是仅为一种类型的输入定义的部分函数字符串=>MergeStrategy,即对于包前缀为“org\springframework”的类。但是,它应用于项目中的所有类文件,第一个与上面的前缀(org\apache\commons\io\IOCase.class)不匹配的类文件会导致MatchError