2017-07-26 2 views
0

で(クラスjava.lang.Stringの):scala.MatchError:ORG apacheのコモンズ IO IOCase.class私は、ユーザーのsbtアセンブリ、それはこのようなエラーを出力しますSBT +組立

[error] (*:assembly) scala.MatchError: org\apache\commons\io\IOCase.class (of class java.lang.String) 

これらは私の構成は以下のとおりです。

1、assembly.sbt:

import AssemblyKeys._ 
assemblySettings 
mergeStrategy in assembly := { 
    case PathList("org", "springframework", [email protected]_*) => MergeStrategy.last 
} 

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、プロジェクトツール:

sbt:0.13.5 
assembly:0.11.2 
java:1.7 
scala:2.11.8 

任意のヘルプ?

答えて

0

問題がアセンブリブロック内mergeStrategyにおける欠落デフォルトの場合であってもよい。

case x => 
     val oldStrategy = (assemblyMergeStrategy in assembly).value 
     oldStrategy(x) 

はまた、mergeStrategyは廃止され、assemblyMergeStrategyが代わりに使用されるべきです。

基本的

{ 
    case PathList("org", "springframework", [email protected]_*) => MergeStrategy.last 
} 

パッケージ接頭辞「ORG \ springframework」のクラスのための部分的なファンクション文字列の入力の一方のみのタイプのために定義され=> MergeStrategy、すなわち、です。しかし、それはプロジェクト内のすべてのクラスファイルに適用され、上記の接頭辞(org \ apache \ commons \ io \ IOCase.class)と一致しない最初のものはMatchErrorを引き起こします。

関連する問題