2017-02-18 3 views
0

SBTを使用してJARファイルを作成しようとしていますが、私のドライバスクリプトはScalaにあります。私は「SBTアセンブリ」を実行したときにしかし、私は大きなスルーを受け取る:重複:SBTとScalaで異なるファイルの内容が見つかりました

deduplicate: different file contents found in the following: 

そのメッセージを表示するディレクトリのリスト全体をここに投稿しては大きすぎるので、私はあなたが以下の表示ができ、スクリーンショットを添付。私のビルドファイルには、次のものが含まれています

libraryDependencies ++= Seq("org.apache.spark" %% "spark-core" % "2.0.0" % "provided", "org.apache.spark" %% "spark-mllib" % "2.0.0") 

私はthis questionに、しかし無駄にOniltonマシエルが提供するソリューションを試みました。 Assemblyプラグインの 'Setup'セクションの設定手順がコードスニペットの実装方法について明確ではないため、Martin Senneが提供するソリューションの実装方法についても混乱します。どんな助けもありがとう。ありがとう![enter image description here

+0

私はあなたがエラーの画像をアップロードするよりも良いテキストをアップロードすると思います。 – chengpohi

答えて

0

アセンブリプラグインの「セットアップ」セクションの設定手順は、コードスニペットの実装方法が明確でないためです。

それはあなたがマージ戦略build.sbtまたはルートディレクトリにSBTファイルを追加する必要がありますを意味します。

ありsbt-assembly公式文書の例であり、あなたの競合にそれを更新:

import sbtassembly.MergeStrategy 
assemblyMergeStrategy in assembly := { 
    case PathList("org", "apache", "hadoop", "yarn", "factories", "package-info.class")   => MergeStrategy.discard 
    case PathList("org", "apache", "hadoop", "yarn", "provider", "package-info.class")   => MergeStrategy.discard 
    case PathList("org", "apache", "hadoop", "util", "provider", "package-info.class")   => MergeStrategy.discard 
    case PathList("org", "apache", "spark", "unused", "UnusedStubClass.class")   => MergeStrategy.first 
} 

希望に満ちた、それはあなたのために便利です。

+0

ありがとうchengpohi!このソリューションは本当に役に立ちます。あなたのコードスニペットをbuild.sbtファイルに追加し、scala.MatchErrorを受け取りました。私は[リンク](http://stackoverflow.com/questions/36509450/assemblymergestrategy-causing-scala-matcherror-when-compiling)で提供されているソリューションに従っています。デフォルトのケースがないと思います。しかし、デフォルトのケースを追加した後、同じオリジナルの重複エラーの別のスルーを受け取りました。 MergeStrategyを設定していない他の多くの依存関係があったからです。あなたは何をお勧めします? – Michael

+1

'PathList( "org"、 "apache"、xs @ _ *)=> MergeStrategy.last'を追加してコードに若干のバリエーションを加えました。ありがとう! – Michael

関連する問題