0

すべての依存ライブラリを使用してファット jar を生成することはできませんが、scala ライブラリは使用できません。build.sbt ファイルの次の構成があります。

import AssemblyKeys._
assemblySettings

jarName in assembly := "test-project.jar"    
assemblyOption in assembly ~= { _.copy(includeScala = false) }
name := "test-project"

version := "1.0"

scalaVersion := "2.10.4"

resolvers += Resolver.sonatypeRepo("public")

resolvers += "SnowPlow Repo" at "http://maven.snplow.com/releases/"

resolvers += "Twitter Maven Repo" at "http://maven.twttr.com/"

libraryDependencies ++= Seq(
    "org.apache.spark" %% "spark-core" % "1.2.1" % "provided",
    "org.apache.avro" % "avro" % "1.7.7" % "provided" withSources(),
    "org.apache.avro" % "avro-mapred" % "1.7.7" % "provided" withSources(),
    "com.github.nscala-time" %% "nscala-time" % "1.8.0" withSources(),
    "com.snowplowanalytics"  %% "scala-maxmind-iplookups"  % "0.2.0" withSources(),
    "com.twitter" %% "algebird-core" % "0.9.0" withSources()
)

sbt アセンブリを実行した後test-project.jar、プロジェクト コードとほぼすべてのライブラリが含まれています。唯一欠けているのは"com.snowplowanalytics" %% "scala-maxmind-iplookups" % "0.2.0依存関係です - これは奇妙です。assemblyOption in assembly ~= { _.copy(includeScala = false) }さらに、build.sbt config の行を削除すると、完全な jar (すべてのライブラリを含む) だけでなく、不要な scala ライブラリ クラスも受け取ります。

sbtファット jar を生成するためのsbt-assemblyプラグインを作成して、scala ライブラリを使用せずに他のすべての依存ライブラリを使用する方法。

sbt version: 0.13.5

sbt-assembly version: 0.11.2

4

1 に答える 1

1

https://github.com/sbt/sbt-assembly/issues/116をご覧ください。 プラグインの古いバージョンのバグである可能性があります

于 2015-02-26T12:41:34.410 に答える