% 「提供」構成
ファット jar から jar を除外する最初のオプションは"provided"
、ライブラリの依存関係で構成を使用することです。次のように定義されている"provided"
Maven の提供スコープから取得されます。
これは によく似compile
ていますが、JDK またはコンテナーが実行時に依存関係を提供することを期待していることを示しています。たとえば、Java Enterprise Edition 用の Web アプリケーションを構築する場合provided
、Web コンテナがこれらのクラスを提供するため、Servlet API および関連する Java EE API への依存関係をスコープに設定します。このスコープは、コンパイルおよびテスト クラスパスでのみ使用でき、推移的ではありません。
コードをコンテナー (この場合は Spark) にデプロイしているため、コメントに反して、おそらく Scala 標準ライブラリとその他のライブラリ jar (使用した場合は Dispatch) が必要になるでしょう。これはrun
またはには影響しませんtest
。
パッケージビン
ソース コードだけが必要で、Scala 標準ライブラリやその他のライブラリの依存関係が必要ない場合は、packageBin
sbt に組み込まれます。このパッケージ化された jar は、sbt-assembly の を使用して作成できる依存関係のみの jar と組み合わせることができますassemblyPackageDependency
。
アセンブリ内の除外されたジャー
最後のオプションは、次を使用することexcludedJars in assembly
です。
excludedJars in assembly := {
val cp = (fullClasspath in assembly).value
cp filter {_.data.getName == "spark-core_2.9.3-0.8.0-incubating.jar"}
}